Search Results for

    Show / Hide Table of Contents

    Class ReflectionUtil

    Summary description for ReflectionUtil2.

    Inheritance
    System.Object
    ReflectionUtil
    Namespace: ImageVault.Common.Lib.Reflection
    Assembly: ImageVault.Common.dll
    Syntax
    public static class ReflectionUtil : Object
    Remarks

    2011-02-16 dan: Created

    Methods

    ConvertValueFromNullable(Object)

    Converts a value from a System.Nullable<> value

    Declaration
    public static object ConvertValueFromNullable(object value)
    Parameters
    Type Name Description
    System.Object value

    The value to convert

    Returns
    Type Description
    System.Object

    The converted value or if the value is not a System.Nullable<>, the original value.

    DumpStackTrace()

    Dumps the current stack trace

    Declaration
    public static string DumpStackTrace()
    Returns
    Type Description
    System.String

    DumpStackTrace(String, Boolean, Func<StackFrame, Boolean>)

    Gets the stacktrace from the outermost occurrence of the supplied namespace prefix

    Declaration
    public static string DumpStackTrace(string namespacePrefix, bool reverse = false, Func<StackFrame, bool> filter = null)
    Parameters
    Type Name Description
    System.String namespacePrefix
    System.Boolean reverse

    If stack trace should be printed reverse, beginning with originating frame and ending with current frame

    System.Func<System.Diagnostics.StackFrame, System.Boolean> filter

    Filter to use for filtering out different frames. Return true to keep frame, false to remove

    Returns
    Type Description
    System.String

    FindAllConcreteImplementations(Assembly, Type, Type[])

    Iterates all types in the assembly and returns a dictionary containing of all interfaces and concrete implementations inheriting from the baseInterface

    Declaration
    public static Dictionary<Type, List<Type>> FindAllConcreteImplementations(Assembly assembly, Type baseInterface, params Type[] interfaceTypesToIgnore)
    Parameters
    Type Name Description
    System.Reflection.Assembly assembly

    The System.Reflection.Assembly to search in

    System.Type baseInterface

    The System.Type of the interface

    System.Type[] interfaceTypesToIgnore

    The optional list of interfaces that should be ignored

    Returns
    Type Description
    System.Collections.Generic.Dictionary<System.Type, System.Collections.Generic.List<System.Type>>
    Remarks

    Will only find interfaces that implements the baseInterface and their concrete implementations

    FindAllConcreteImplementations<T>(Assembly)

    Find all concrete subclasses of the supplied type

    Declaration
    public static IEnumerable<Type> FindAllConcreteImplementations<T>(Assembly assembly)
    Parameters
    Type Name Description
    System.Reflection.Assembly assembly

    The assembly to look in

    Returns
    Type Description
    System.Collections.Generic.IEnumerable<System.Type>
    Type Parameters
    Name Description
    T

    Base type that the class must implement

    GetAttribute(MemberInfo, Type)

    Gets the attribute from the supplied memberinfo that is of the supplied attribute type.

    Declaration
    public static Attribute GetAttribute(MemberInfo memberInfo, Type attributeType)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attribute from

    System.Type attributeType

    The type of attribute to get, if null type of attribute is irrelevant.

    Returns
    Type Description
    System.Attribute

    The first attribute of the matching type

    Remarks

    This will only search the supplied memberInfo, not inherited ones.

    Exceptions
    Type Condition
    MemberReflectionException

    If the member has more than one instance of the attribute.

    GetAttribute(MemberInfo, Type, Boolean)

    Gets the attribute from the supplied memberinfo that is of the supplied attribute type.

    Declaration
    public static Attribute GetAttribute(MemberInfo memberInfo, Type attributeType, bool inherit)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attribute from

    System.Type attributeType

    The type of attribute to get, if null type of attribute is irrelevant.

    System.Boolean inherit

    If the types inheritance chain should be searched for attributes

    Returns
    Type Description
    System.Attribute

    The first attribute of the matching type

    Exceptions
    Type Condition
    MemberReflectionException

    If the member has more than one instance of the attribute.

    GetAttribute<TAttribute>(MemberInfo)

    Gets the attribute from the supplied memberinfo that is of the supplied attribute type.

    Declaration
    public static TAttribute GetAttribute<TAttribute>(MemberInfo memberInfo)
        where TAttribute : Attribute
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attribute from

    Returns
    Type Description
    TAttribute

    The first attribute of the matching type

    Type Parameters
    Name Description
    TAttribute

    The type of attribute to get

    GetAttribute<TAttribute>(MemberInfo, Boolean)

    Gets the attribute from the supplied memberinfo that is of the supplied attribute type.

    Declaration
    public static TAttribute GetAttribute<TAttribute>(MemberInfo memberInfo, bool inherit)
        where TAttribute : Attribute
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attribute from

    System.Boolean inherit

    If the types inheritance chain should be searched for attributes

    Returns
    Type Description
    TAttribute

    The first attribute of the matching type

    Type Parameters
    Name Description
    TAttribute

    The type of attribute to get

    GetAttributes(MemberInfo)

    Gets the attributes from the supplied type that is of the supplied attribute type.

    Declaration
    public static Attribute[] GetAttributes(MemberInfo memberInfo)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attributes from

    Returns
    Type Description
    System.Attribute[]

    An array of attributes

    GetAttributes(MemberInfo, Boolean)

    Gets the attributes from the supplied type that is of the supplied attribute type.

    Declaration
    public static Attribute[] GetAttributes(MemberInfo memberInfo, bool inherit)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attributes from

    System.Boolean inherit

    If the types inheritance chain should be searched for attributes

    Returns
    Type Description
    System.Attribute[]

    An array of attributes

    GetAttributes(MemberInfo, Type)

    Gets the attributes from the supplied type that is of the supplied attribute type.

    Declaration
    public static Attribute[] GetAttributes(MemberInfo memberInfo, Type attributeType)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attributes from

    System.Type attributeType

    The type of attribute to get, if null type of attribute is irrelevant.

    Returns
    Type Description
    System.Attribute[]

    An array of attributes

    Remarks

    This will only search the supplied memberInfo, not inherited ones.

    GetAttributes(MemberInfo, Type, Boolean)

    Gets the attributes from the supplied type that is of the supplied attribute type.

    Declaration
    public static Attribute[] GetAttributes(MemberInfo memberInfo, Type attributeType, bool inherit)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attributes from

    System.Type attributeType

    The type of attribute to get, if null type of attribute is irrelevant.

    System.Boolean inherit

    If the types inheritance chain should be searched for attributes

    Returns
    Type Description
    System.Attribute[]

    An array of attributes

    GetAttributes<TAttribute>(MemberInfo, Boolean)

    Gets the attributes from the supplied type that is of the supplied attribute type.

    Declaration
    public static TAttribute[] GetAttributes<TAttribute>(MemberInfo memberInfo, bool inherit)
        where TAttribute : Attribute
    Parameters
    Type Name Description
    System.Reflection.MemberInfo memberInfo

    The memberinfo to get the attributes from

    System.Boolean inherit

    If the types inheritance chain should be searched for attributes

    Returns
    Type Description
    TAttribute[]

    An array of attributes

    Type Parameters
    Name Description
    TAttribute

    The type of attribute to get

    GetCalleeAssembly()

    Gets the assembly of the class that called the assembly of the method that calls this method. :)

    Declaration
    public static Assembly GetCalleeAssembly()
    Returns
    Type Description
    System.Reflection.Assembly

    The System.Reflection.Assembly of the method that called the assembly of the method that we call this method fromor null if the call started from the calling assembly

    GetCallerTypeMethodFullName(Type)

    Gets the full name of the caller types method

    Declaration
    public static string GetCallerTypeMethodFullName(Type boundaryType = null)
    Parameters
    Type Name Description
    System.Type boundaryType
    Returns
    Type Description
    System.String

    The methods full name on the format returnType methodName(parameters)

    GetDefaultValue(Type)

    Gets the default uninitialized value of the specific type.

    Declaration
    public static object GetDefaultValue(Type type)
    Parameters
    Type Name Description
    System.Type type

    The System.Type to get the value for

    Returns
    Type Description
    System.Object

    The default value of the specified type

    Remarks

    The default value is for reference types null, and for value types it's the same as the call to the default constructor.

    GetDerivedTypes(Assembly, Type)

    Gets all types from the assembly that is directly or indirectly derived from the supplied baseType

    Declaration
    public static IList<Type> GetDerivedTypes(Assembly assembly, Type baseType)
    Parameters
    Type Name Description
    System.Reflection.Assembly assembly

    The assembly to search

    System.Type baseType

    the baseType to use as a reference

    Returns
    Type Description
    System.Collections.Generic.IList<System.Type>

    An array of derived types in the assembly

    GetDerivedTypes(Type)

    Gets all types that is directly or indirectly derived from the supplied baseType in the basetypes assembly.

    Declaration
    public static IList<Type> GetDerivedTypes(Type baseType)
    Parameters
    Type Name Description
    System.Type baseType

    the baseType to use as a reference

    Returns
    Type Description
    System.Collections.Generic.IList<System.Type>

    An array of derived types in the assembly

    GetField(Type, String, Object)

    Gets the field from the instance

    Declaration
    public static object GetField(Type type, string name, object instance)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the field

    System.String name

    The name of the field

    System.Object instance

    The instance to get the value from

    Returns
    Type Description
    System.Object

    The value of the field

    GetMemberInfoType(MemberInfo)

    Finds the Type of the supplied System.Reflection.MemberInfo

    Declaration
    public static Type GetMemberInfoType(MemberInfo info)
    Parameters
    Type Name Description
    System.Reflection.MemberInfo info

    The System.Reflection.MemberInfo to get the type for (can be a System.Reflection.FieldInfo or a System.Reflection.PropertyInfo

    Returns
    Type Description
    System.Type

    The found System.Type

    Exceptions
    Type Condition
    System.Exception

    If cannot get the Type from the supplied memberInfo.

    GetMethodFullName()

    Gets the full name of the calling method. for instance,

    string ImageVault.Common.Lib.Reflection.ReflectionUtil.GetMethodFullName()

    Declaration
    public static string GetMethodFullName()
    Returns
    Type Description
    System.String

    The methods full name on the format returnType methodName(parameters)

    GetNullableValueType(Type)

    Gets the nullable type if the supplied type is a nullable

    Declaration
    public static Type GetNullableValueType(Type type)
    Parameters
    Type Name Description
    System.Type type

    The System.Type to check for nullable

    Returns
    Type Description
    System.Type

    The underlying type if the supplied type is a System.Nullable<>; otherwize the supplied type is returned.

    GetOriginatingCallerTypeMethodFullName(String)

    Gets the full name of the originating caller type method

    Declaration
    public static string GetOriginatingCallerTypeMethodFullName(string namespacePrefix)
    Parameters
    Type Name Description
    System.String namespacePrefix
    Returns
    Type Description
    System.String

    GetProperty(Type, String, Object)

    Gets the property from the instance

    Declaration
    public static object GetProperty(Type type, string name, object instance)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the property

    System.String name

    The name of the property

    System.Object instance

    The instance to get the value from

    Returns
    Type Description
    System.Object

    The value of the property

    GetPropertyInfo(Type, String)

    Gets the System.Reflection.PropertyInfo that matches the name in the type

    Declaration
    public static PropertyInfo GetPropertyInfo(Type type, string name)
    Parameters
    Type Name Description
    System.Type type

    The System.Type to search for the property in

    System.String name

    The name of the property

    Returns
    Type Description
    System.Reflection.PropertyInfo

    The found System.Reflection.PropertyInfo or null if no match was found.

    Remarks

    If we find multiple properties with the same name in the object (inherited and declared with new), we will get the topmost PropertyInfo in the inheritance chain

    Exceptions
    Type Condition
    System.ArgumentNullException

    If type is null or if name is null.

    GetTypes(Assembly)

    Gets the loadable types from the assembly

    Declaration
    public static Type[] GetTypes(Assembly assembly)
    Parameters
    Type Name Description
    System.Reflection.Assembly assembly

    The System.Reflection.Assembly to load the types from.

    Returns
    Type Description
    System.Type[]

    An System.Type array of the loadable types in the assembly.

    InvokeMember(Type, String, Object, BindingFlags, Object[])

    Invokes the member

    Declaration
    public static object InvokeMember(Type type, string name, object instance, BindingFlags flags, params object[] parameters)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the member

    System.String name

    The name of the member

    System.Object instance

    The instance to invoke on

    System.Reflection.BindingFlags flags

    The System.Reflection.BindingFlags to use

    System.Object[] parameters

    The System.Object array to pass as parameters

    Returns
    Type Description
    System.Object

    The returnvalue

    InvokeMethod(Type, String, Object, Object[])

    Invokes the method of the type.

    Declaration
    public static object InvokeMethod(Type type, string name, object instance, params object[] parameters)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the method

    System.String name

    The name of the method to invoke

    System.Object instance

    The instance to invoke the method on

    System.Object[] parameters

    The parameters to pass to the method

    Returns
    Type Description
    System.Object

    The returnvalue from the method call

    InvokeStaticMethod(Type, String, Object[])

    Invokes the static method of the type.

    Declaration
    public static object InvokeStaticMethod(Type type, string name, params object[] parameters)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the method

    System.String name

    The name of the method to invoke

    System.Object[] parameters

    The parameters to pass to the method

    Returns
    Type Description
    System.Object

    The returnvalue from the method call

    IsNonPrimitiveStruct(Type)

    Checks if the supplied type is a Struct (primitives are ignored)

    Declaration
    public static bool IsNonPrimitiveStruct(Type type)
    Parameters
    Type Name Description
    System.Type type

    The type to check

    Returns
    Type Description
    System.Boolean

    True if it is struct, otherwise false. Primitives (Int32, Single etc) are not passed.

    Exceptions
    Type Condition
    System.ArgumentNullException

    If type is null.

    IsNullable(Type)

    Checks if the supplied type is a System.Nullable<>

    Declaration
    public static bool IsNullable(Type type)
    Parameters
    Type Name Description
    System.Type type

    The System.Type to check

    Returns
    Type Description
    System.Boolean

    True if it is System.Nullable<>, otherwise false.

    LookupType(String, Type)

    Looks up the typename and finds a corresponding type

    Declaration
    public static IList<Type> LookupType(string typeName, Type baseType)
    Parameters
    Type Name Description
    System.String typeName

    The name of the type to find

    System.Type baseType

    The System.Type that the type inherits from

    Returns
    Type Description
    System.Collections.Generic.IList<System.Type>

    The System.Collections.Generic.IList<> of types that matches

    LookupType(String, Type, Assembly)

    Looks up the typename and finds a corresponding type

    Declaration
    public static IList<Type> LookupType(string typeName, Type baseType, Assembly assembly)
    Parameters
    Type Name Description
    System.String typeName

    The name of the type to find

    System.Type baseType

    The System.Type that the type inherits from

    System.Reflection.Assembly assembly

    The System.Reflection.Assembly to search in

    Returns
    Type Description
    System.Collections.Generic.IList<System.Type>

    The System.Collections.Generic.IList<> of types that matches

    ResolvePath(Object, IEnumerable<String>)

    Resolves the supplied property path from the supplied value

    Declaration
    public static object ResolvePath(object val, IEnumerable<string> path)
    Parameters
    Type Name Description
    System.Object val
    System.Collections.Generic.IEnumerable<System.String> path
    Returns
    Type Description
    System.Object

    SetField(Type, String, Object, Object)

    Sets the field in the instance

    Declaration
    public static object SetField(Type type, string name, object instance, object value)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the field

    System.String name

    The name of the field

    System.Object instance

    The instance to set the value to

    System.Object value

    The value to set

    Returns
    Type Description
    System.Object

    null

    SetProperty(Type, String, Object, Object)

    Sets the property in the instance

    Declaration
    public static object SetProperty(Type type, string name, object instance, object value)
    Parameters
    Type Name Description
    System.Type type

    The System.Type that contains the property

    System.String name

    The name of the property

    System.Object instance

    The instance to set the value to

    System.Object value

    The value to set

    Returns
    Type Description
    System.Object

    null

    In This Article
    Back to top (c) Meriworks 2002-2022