Table of Contents

Class TypeDecoratorExtensions

Namespace
Cuemon
Assembly
Cuemon.Core.dll

Extension methods for the Type class hidden behind the IDecorator<T> interface.

public static class TypeDecoratorExtensions
Inheritance
TypeDecoratorExtensions

Methods

GetAllEvents(IDecorator<Type>, Action<MemberReflectionOptions>)

Retrieves a collection that represents all events defined on the enclosed Type of the specified decorator and its inheritance chain.

public static IEnumerable<EventInfo> GetAllEvents(this IDecorator<Type> decorator, Action<MemberReflectionOptions> setup = null)

Parameters

decorator IDecorator<Type>

The Type to extend.

setup Action<MemberReflectionOptions>

The MemberReflectionOptions which may be configured.

Returns

IEnumerable<EventInfo>

An IEnumerable<T> that contains all EventInfo objects on the enclosed Type of the specified decorator and its inheritance chain.

GetAllFields(IDecorator<Type>, Action<MemberReflectionOptions>)

Retrieves a collection that represents all fields defined on the enclosed Type of the specified decorator and its inheritance chain.

public static IEnumerable<FieldInfo> GetAllFields(this IDecorator<Type> decorator, Action<MemberReflectionOptions> setup = null)

Parameters

decorator IDecorator<Type>

The Type to extend.

setup Action<MemberReflectionOptions>

The MemberReflectionOptions which may be configured.

Returns

IEnumerable<FieldInfo>

An IEnumerable<T> that contains all FieldInfo objects on the enclosed Type of the specified decorator and its inheritance chain.

GetAllMethods(IDecorator<Type>, Action<MemberReflectionOptions>)

Retrieves a collection that represents all methods defined on the enclosed Type of the specified decorator and its inheritance chain.

public static IEnumerable<MethodInfo> GetAllMethods(this IDecorator<Type> decorator, Action<MemberReflectionOptions> setup = null)

Parameters

decorator IDecorator<Type>

The Type to extend.

setup Action<MemberReflectionOptions>

The MemberReflectionOptions which may be configured.

Returns

IEnumerable<MethodInfo>

An IEnumerable<T> that contains all MethodInfo objects on the enclosed Type of the specified decorator and its inheritance chain.

GetAllProperties(IDecorator<Type>, Action<MemberReflectionOptions>)

Retrieves a collection that represents all properties defined on the enclosed Type of the specified decorator and its inheritance chain.

public static IEnumerable<PropertyInfo> GetAllProperties(this IDecorator<Type> decorator, Action<MemberReflectionOptions> setup = null)

Parameters

decorator IDecorator<Type>

The Type to extend.

setup Action<MemberReflectionOptions>

The MemberReflectionOptions which may be configured.

Returns

IEnumerable<PropertyInfo>

An IEnumerable<T> that contains all PropertyInfo objects on the enclosed Type of the specified decorator and its inheritance chain.

GetDefaultValue(IDecorator<Type>)

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

public static object GetDefaultValue(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

Returns

Object

The default value from the underlying Type of the decorator.

Remarks

Usage is primarily intended for struct.

Exceptions

ArgumentNullException

decorator cannot be null.

GetDerivedTypes(IDecorator<Type>, Assembly[])

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

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

assemblies Assembly[]

The assemblies to include in the search of derived types.

Returns

IEnumerable<Type>

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

Exceptions

ArgumentNullException

decorator cannot be null.

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.

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

assemblies Assembly[]

The assemblies to include in the search of derived types.

Returns

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

ArgumentNullException

decorator cannot be null.

GetInheritedTypes(IDecorator<Type>)

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

public static IEnumerable<Type> GetInheritedTypes(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

IEnumerable<Type>

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

Exceptions

ArgumentNullException

decorator cannot be null.

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.

public static IEnumerable<PropertyInfo> GetRuntimePropertiesExceptOf<T>(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

IEnumerable<PropertyInfo>

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

Type Parameters

T

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

Exceptions

ArgumentNullException

decorator cannot be null.

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).

public static bool HasAnonymousCharacteristics(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

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

ArgumentNullException

decorator cannot be null.

HasAttribute(IDecorator<Type>, Type[])

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

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

attributeTypes Type[]

The attribute types to be matched against.

Returns

Boolean

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

Exceptions

ArgumentNullException

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

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.

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

source Object

The source to check for circular reference.

maxDepth Int32

The maximum depth to traverse of source.

valueResolver Func<Object, PropertyInfo, Object>

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

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

InvalidOperationException

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

HasComparableImplementation(IDecorator<Type>)

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

public static bool HasComparableImplementation(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasComparerImplementation(IDecorator<Type>)

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

public static bool HasComparerImplementation(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasDefaultConstructor(IDecorator<Type>)

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

public static bool HasDefaultConstructor(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasDictionaryImplementation(IDecorator<Type>)

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

public static bool HasDictionaryImplementation(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasEnumerableImplementation(IDecorator<Type>)

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

public static bool HasEnumerableImplementation(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasEqualityComparerImplementation(IDecorator<Type>)

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

public static bool HasEqualityComparerImplementation(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasInterfaces(IDecorator<Type>, Type[])

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

public static bool HasInterfaces(this IDecorator<Type> decorator, params Type[] interfaceTypes)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

interfaceTypes Type[]

The interface types to be matched against.

Returns

Boolean

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

Exceptions

ArgumentNullException

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

HasKeyValuePairImplementation(IDecorator<Type>)

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

public static bool HasKeyValuePairImplementation(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

HasTypes(IDecorator<Type>, Type[])

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

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

types Type[]

The types to be matched against.

Returns

Boolean

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

Exceptions

ArgumentNullException

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

IsComplex(IDecorator<Type>)

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

public static bool IsComplex(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

IsNullable(IDecorator<Type>)

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

public static bool IsNullable(this IDecorator<Type> decorator)

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

Returns

Boolean

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

Exceptions

ArgumentNullException

decorator cannot be null.

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

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

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

memberName String

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

setup Action<MethodBaseOptions>

The MethodBaseOptions which may be configured.

Returns

MethodBase

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

Exceptions

ArgumentNullException

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

ArgumentException

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

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

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

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

Parameters

decorator IDecorator<Type>

The IDecorator<T> to extend.

setup Action<TypeNameOptions>

The TypeNameOptions which may be configured.

Returns

String

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

Exceptions

ArgumentNullException

decorator cannot be null.

See Also