Search Results for

    Show / Hide Table of Contents

    Class ReflectionExtensions

    Contains a set of extensions for common reflection activities

    Inheritance
    System.Object
    ReflectionExtensions
    Inherited Members
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: LemonEdge.Utils
    Assembly: Utils.dll
    Syntax
    public static class ReflectionExtensions
    Remarks

    In general this includes methods for getting dynamic property setters and getters against unknown types. This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    Methods

    ClearEventInvocations(Object, String)

    Set the given event eventName for a given object obj to null

    Declaration
    public static void ClearEventInvocations(this object obj, string eventName)
    Parameters
    Type Name Description
    System.Object obj

    The object that has an event you want to clean the invocation list for

    System.String eventName

    The name of the event you want to clear against the object instance

    GetGenericInstanceOfBaseType(Type, Type)

    Given a type this returns the type generic type that implements the baseType this inherits

    Declaration
    public static Type GetGenericInstanceOfBaseType(this Type type, Type baseType)
    Parameters
    Type Name Description
    System.Type type

    Finds what class this class implements of the generic specified base type. This type must inherit from basetype

    System.Type baseType

    he type that has a generic argument(s) that you would like the whole type for

    Returns
    Type Description
    System.Type

    The generic type of baseType that the type implements or inherits

    Remarks

    For example:

    public class MyClass<T>
    {
    }
    
    public class MyDecimalClass : MyClass<decimal> { }
    
    public static Type GetMyDecimalClassType()
    {
        return typeof(MyDecimalClass).GetGenericInstanceOfBaseType(typeof(MyClass<>));
    }

    Would return the MyClass<decimal> type

    GetGenericTypeArgumentOfImplementedBaseClass(Type, Type)

    Given a type that implements or inherits forGenericType that has a generic argument, this function will return the Type used as the generic argument for the forGenericType

    Declaration
    public static Type GetGenericTypeArgumentOfImplementedBaseClass(this Type type, Type forGenericType)
    Parameters
    Type Name Description
    System.Type type

    The type that inherits or implements forGenericType

    System.Type forGenericType

    The type that has a generic argument that you would like the generic type for

    Returns
    Type Description
    System.Type

    The generic type argument for the forGenericType that the type implements or inherits

    Remarks

    For example:

    public class MyClass<T>
    {
    }
    
    public class MyDecimalClass : MyClass<decimal> { }
    
    public static Type GetMyDecimalClassType()
    {
        return typeof(MyDecimalClass).GetGenericTypeArgumentOfImplementedBaseClass(typeof(MyClass<>));
    }

    Would return the decimal type

    GetValue(Type, String, Object)

    Returns the value for the specified propertyName againt the specified item an instance of type type

    Declaration
    public static object GetValue(this Type type, string propertyName, object item)
    Parameters
    Type Name Description
    System.Type type

    The type this property resides against that we want the value of

    System.String propertyName

    The name of the property we want to return the value of

    System.Object item

    An instance of type type

    Returns
    Type Description
    System.Object

    The value of propertyName against the item instance

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    InheritsFromIncludingGeneric(Type, Type)

    Indicates if the given type inherits from of implements the specified baseType including if that type has generic arguments

    Declaration
    public static bool InheritsFromIncludingGeneric(this Type type, Type baseType)
    Parameters
    Type Name Description
    System.Type type

    The type you want to know if it inherits from baseType

    System.Type baseType

    The type you want to know if type inherits from

    Returns
    Type Description
    System.Boolean

    True if type inherits from baseType including if that type has generic arguments

    InheritsFromIncludingGeneric<T>(Type)

    Indicates if the given T inherits from of implements the specified type including if that type has generic arguments

    Declaration
    public static bool InheritsFromIncludingGeneric<T>(this Type type)
    Parameters
    Type Name Description
    System.Type type

    The type you want to know if T inherits from

    Returns
    Type Description
    System.Boolean

    True if T inherits from type including if that type has generic arguments

    Type Parameters
    Name Description
    T

    The type you want to know if it inherits from type

    InheritsFromType(Type, String)

    Returns true if the specified type type inherits from a class called typeName

    Declaration
    public static bool InheritsFromType(this Type type, string typeName)
    Parameters
    Type Name Description
    System.Type type

    The type to see if it inherits any class called typeName

    System.String typeName

    The name of a type you want to see if the type type inherits

    Returns
    Type Description
    System.Boolean

    SetValue(Type, String, Object, Object)

    Set the value for the specified propertyName to value againt the specified item an instance of type type

    Declaration
    public static void SetValue(this Type type, string propertyName, object item, object value)
    Parameters
    Type Name Description
    System.Type type

    The type this property resides against that we want the value of

    System.String propertyName

    The name of the property we want to return the value of

    System.Object item

    An instance of type type

    System.Object value

    The value to set for the propertyName against an item instance

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    ToCodeTypeName(Type)

    Used for auto code generation. Returns the name of a given type in c# style syntax

    Declaration
    public static string ToCodeTypeName(this Type type)
    Parameters
    Type Name Description
    System.Type type

    The type to return a c# formatted type code for

    Returns
    Type Description
    System.String

    The specified type in c# style coding

    Remarks

    For example List<int> would be returned as List<int> and not List'1Int

    ToPropertyAccessor<T>(PropertyInfo, Nullable<Int32>)

    Returns a function that given an instance of T will return the value of property p

    Declaration
    public static Func<T, object> ToPropertyAccessor<T>(this PropertyInfo p, int? index = default(int? ))
    Parameters
    Type Name Description
    System.Reflection.PropertyInfo p

    The property to return a value for

    System.Nullable<System.Int32> index

    If the property has an indexer this holds the index value to the property

    Returns
    Type Description
    System.Func<T, System.Object>

    An System.Func<T, TResult> that takes an instance of the object and returns the value for the specified p property

    Type Parameters
    Name Description
    T

    The type of the item that will be passed to return the property value of p from

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    ToPropertyAccessor<T>(PropertyInfo, Type, Nullable<Int32>)

    Returns a function that given an instance of T will return the value of property p

    Declaration
    public static Func<T, object> ToPropertyAccessor<T>(this PropertyInfo p, Type actualTypeThatImplementsT, int? index = default(int? ))
    Parameters
    Type Name Description
    System.Reflection.PropertyInfo p

    The property to return a value for

    System.Type actualTypeThatImplementsT

    The actual type that implements the property p. This may not be T if this type inherits or implements T

    System.Nullable<System.Int32> index

    If the property has an indexer this holds the index value to the property

    Returns
    Type Description
    System.Func<T, System.Object>

    An System.Func<T, TResult> that takes an instance of the object and returns the value for the specified p property

    Type Parameters
    Name Description
    T

    The type of the item that will be passed to return the property value of p from

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    ToPropertyAccessor<T, R>(PropertyInfo, Nullable<Int32>)

    Returns a function that given an instance of T will return the value of property p as type R

    Declaration
    public static Func<T, R> ToPropertyAccessor<T, R>(this PropertyInfo p, int? index = default(int? ))
    Parameters
    Type Name Description
    System.Reflection.PropertyInfo p

    The property to return a value for

    System.Nullable<System.Int32> index

    If the property has an indexer this holds the index value to the property

    Returns
    Type Description
    System.Func<T, R>

    An System.Func<T, TResult> that takes an instance of the object and returns the value for the specified p property

    Type Parameters
    Name Description
    T

    The type of the item that will be passed to return the property value of p from

    R

    The return type from the property

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    ToPropertyAccessorExpression<T, R>(PropertyInfo, Nullable<Int32>, Boolean)

    Returns a expression (for use with Linq and other technologies) of a function that given an instance of T will return the value of property p as type R

    Declaration
    public static Expression<Func<T, R>> ToPropertyAccessorExpression<T, R>(this PropertyInfo p, int? index = default(int? ), bool cast = true)
    Parameters
    Type Name Description
    System.Reflection.PropertyInfo p

    The property to return a value for

    System.Nullable<System.Int32> index

    If the property has an indexer this holds the index value to the property

    System.Boolean cast

    Indicates if the value being returned should be cast to R or not

    Returns
    Type Description
    System.Linq.Expressions.Expression<System.Func<T, R>>

    An System.Linq.Expressions.Expression<TDelegate> (for use with Linq and other technologies) of System.Func<T, TResult> that takes an instance of the object and returns the value for the specified p property

    Type Parameters
    Name Description
    T

    The type of the item that will be passed to return the property value of p from

    R

    The return type from the property

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    ToPropertySetter<T>(PropertyInfo, Nullable<Int32>)

    Returns an action that can be used to set the property value for the specified propInfo against an instance of the type

    Declaration
    public static Action<T, object> ToPropertySetter<T>(this PropertyInfo propInfo, int? index = default(int? ))
    Parameters
    Type Name Description
    System.Reflection.PropertyInfo propInfo

    The propertyinfo which describes the property you want to be able to set the value against

    System.Nullable<System.Int32> index

    If the property has an indexer this holds the index value to the property

    Returns
    Type Description
    System.Action<T, System.Object>

    An System.Action<T1, T2> that takes an instance of the object and the value to set the specified propInfo property to

    Type Parameters
    Name Description
    T

    The type of object that you want to set a property value against

    Remarks

    This is significantly faster than using System.Reflection.PropertyInfo.GetValue(System.Object) and System.Reflection.PropertyInfo.SetValue(System.Object,System.Object)

    In This Article
    Back to top © LemonTree Software Ltd. All rights reserved.