Show / Hide Table of Contents

Class TypeDecoratorExtensions

Extension methods for the Type class tailored to adhere the decorator pattern.

Inheritance
Object
TypeDecoratorExtensions
Namespace: Cuemon
Assembly: Cuemon.Core.dll
Syntax
public static class TypeDecoratorExtensions

Methods

| Improve this Doc View Source

GetDefaultValue(IDecorator<Type>)

Gets the default value from the underlying Type of the decorator.

Declaration
public static object GetDefaultValue(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator
Returns
Type Description
Object

The default value from the underlying Type of the decorator.

Remarks

Usage is primarily intended for struct.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

GetDerivedTypes(IDecorator<Type>, Assembly[])

Gets a collection (self-to-derived) of derived / descendant types from the underlying Type of the decorator.

Declaration
public static IEnumerable<Type> GetDerivedTypes(this IDecorator<Type> decorator, params Assembly[] assemblies)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Assembly[] assemblies

The assemblies to include in the search of derived types.

Returns
Type Description
IEnumerable<Type>

An IEnumerable<T> that contains the derived types from the underlying Type of the decorator.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

GetHierarchyTypes(IDecorator<Type>, Assembly[])

Gets a collection (inherited-to-self-to-derived) of inherited / ancestor and derived / descendant types from the underlying Type of the decorator.

Declaration
public static IEnumerable<Type> GetHierarchyTypes(this IDecorator<Type> decorator, params Assembly[] assemblies)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Assembly[] assemblies

The assemblies to include in the search of derived types.

Returns
Type Description
IEnumerable<Type>

An IEnumerable<T> that contains a sorted (base-to-derived) collection of inherited and derived types from the underlying Type of the decorator.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

GetInheritedTypes(IDecorator<Type>)

Gets a collection (inherited-to-self) of inherited / ancestor types from the underlying Type of the decorator.

Declaration
public static IEnumerable<Type> GetInheritedTypes(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
IEnumerable<Type>

An IEnumerable<T> that contains the inherited types from the underlying Type of the decorator.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

GetRuntimePropertiesExceptOf<T>(IDecorator<Type>)

Retrieves a collection that represents all the properties defined on the enclosed Type of the decorator except those defined on T.

Declaration
public static IEnumerable<PropertyInfo> GetRuntimePropertiesExceptOf<T>(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
IEnumerable<PropertyInfo>

A collection of properties for the enclosed Type of the decorator except those defined on T.

Type Parameters
Name Description
T

The type to exclude properties on the enclosed Type of the decorator.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasAnonymousCharacteristics(IDecorator<Type>)

Determines whether the underlying Type of the decorator suggest an anonymous implementation (be that in a form of a type, delegate or lambda expression).

Declaration
public static bool HasAnonymousCharacteristics(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator suggest an anonymous implementation; otherwise, false.

Remarks

If you can avoid it, don't use this method. It is - to say the least - fragile.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasAttribute(IDecorator<Type>, Type[])

Determines whether the underlying Type of the decorator implements one or more of the specified attributeTypes.

Declaration
public static bool HasAttribute(this IDecorator<Type> decorator, params Type[] attributeTypes)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Type[] attributeTypes

The attribute types to be matched against.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements one or more of the specified attributeTypes; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null -or- attributeTypes cannot be null.

| Improve this Doc View Source

HasCircularReference(IDecorator<Type>, Object, Int32, Func<Object, PropertyInfo, Object>)

Determines whether the specified source (which type must be the same as the underlying Type of the decorator) has a circular reference.

Declaration
public static bool HasCircularReference(this IDecorator<Type> decorator, object source, int maxDepth = 2, Func<object, PropertyInfo, object> valueResolver = null)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Object source

The source to check for circular reference.

Int32 maxDepth

The maximum depth to traverse of source.

Func<Object, PropertyInfo, Object> valueResolver

The function delegate that is invoked when a property can be read and is of same type as the underlying Type of the decorator.

Returns
Type Description
Boolean

true if the specified source has a circular reference; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

InvalidOperationException

source has a different type than the underlying type of decorator.

| Improve this Doc View Source

HasComparableImplementation(IDecorator<Type>)

Determines whether the underlying Type of the decorator implements either IComparable or IComparable<T>.

Declaration
public static bool HasComparableImplementation(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements either IComparable or IComparable<T>; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasComparerImplementation(IDecorator<Type>)

Determines whether the underlying Type of the decorator implements either IComparer or IComparer<T>.

Declaration
public static bool HasComparerImplementation(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements either IComparer or IComparer<T>; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasDefaultConstructor(IDecorator<Type>)

Determines whether the underlying Type of the decorator has a default constructor.

Declaration
public static bool HasDefaultConstructor(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator
Returns
Type Description
Boolean

true if the underlying Type of the decorator has a default constructor; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasDictionaryImplementation(IDecorator<Type>)

Determines whether the underlying Type of the decorator implements either IDictionary, IDictionary<TKey,TValue> or IReadOnlyDictionary<TKey,TValue>.

Declaration
public static bool HasDictionaryImplementation(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements either IDictionary, IDictionary<TKey,TValue> or IReadOnlyDictionary<TKey,TValue>; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasEnumerableImplementation(IDecorator<Type>)

Determines whether the underlying Type of the decorator implements either IEnumerable or IEnumerable<T>.

Declaration
public static bool HasEnumerableImplementation(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements either IEnumerable or IEnumerable<T>; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasEqualityComparerImplementation(IDecorator<Type>)

Determines whether the underlying Type of the decorator implements either IEqualityComparer or IEqualityComparer<T>.

Declaration
public static bool HasEqualityComparerImplementation(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements either IEqualityComparer or IEqualityComparer<T>; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasInterface(IDecorator<Type>, Type[])

Determines whether the underlying Type of the decorator implements one or more of the specified interfaceTypes.

Declaration
public static bool HasInterface(this IDecorator<Type> decorator, params Type[] interfaceTypes)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Type[] interfaceTypes

The interface types to be matched against.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements one or more of the specified interfaceTypes; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null -or- interfaceTypes cannot be null.

| Improve this Doc View Source

HasKeyValuePairImplementation(IDecorator<Type>)

Determines whether the underlying Type of the decorator implements either DictionaryEntry or KeyValuePair<TKey,TValue>.

Declaration
public static bool HasKeyValuePairImplementation(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator implements either DictionaryEntry or KeyValuePair<TKey,TValue>.; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

HasTypes(IDecorator<Type>, Type[])

Determines whether the enclosed Type of the decorator contains one or more of the specified types.

Declaration
public static bool HasTypes(this IDecorator<Type> decorator, params Type[] types)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Type[] types

The types to be matched against.

Returns
Type Description
Boolean

true if the enclosed Type of the decorator contains one or more of the specified types; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null -or- types cannot be null.

| Improve this Doc View Source

IsComplex(IDecorator<Type>)

Determines whether the underlying Type of the decorator is considered complex in its nature.

Declaration
public static bool IsComplex(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator is considered complex in its nature; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

IsNullable(IDecorator<Type>)

Determines whether the underlying Type of the decorator is a nullable ValueType.

Declaration
public static bool IsNullable(this IDecorator<Type> decorator)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Returns
Type Description
Boolean

true if the underlying Type of the decorator is nullable; otherwise, false.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

| Improve this Doc View Source

MatchMember(IDecorator<Type>, String, Action<MethodBaseOptions>)

Conduct a search for memberName using the specified setup on the underlying Type of the decorator.

Declaration
public static MethodBase MatchMember(this IDecorator<Type> decorator, string memberName, Action<MethodBaseOptions> setup = null)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

String memberName

The name of the member on the underlying Type of the decorator.

Action<MethodBaseOptions> setup

The MethodBaseOptions which may be configured.

Returns
Type Description
MethodBase

A MethodBase object representing the method that matches the specified requirements, if found on the underlying Type of the decorator; otherwise, null.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null -or- memberName cannot be null.

ArgumentException

memberName cannot be empty or consist only of white-space characters.

| Improve this Doc View Source

ToFriendlyName(IDecorator<Type>, Action<TypeNameOptions>)

Returns a human-readable String that represents the underlying Type of the decorator.

Declaration
public static string ToFriendlyName(this IDecorator<Type> decorator, Action<TypeNameOptions> setup = null)
Parameters
Type Name Description
IDecorator<Type> decorator

The IDecorator<T> to extend.

Action<TypeNameOptions> setup

The TypeNameOptions which may be configured.

Returns
Type Description
String

A human readable String that represents the underlying Type of the decorator.

Exceptions
Type Condition
ArgumentNullException

decorator cannot be null.

See Also

IDecorator<T>
Decorator<T>
  • Improve this Doc
  • View Source
In This Article
Back to top Copyright 2008-2022 Geekle. All rights reserved. Code with passion and love; deploy with confidence. 👨‍💻️🔥❤️🚀😎
Generated by DocFX