Search Results for

    Show / Hide Table of Contents

    Interface IReflectionHelper

    Namespace: LemonEdge.Utils
    Assembly: LemonEdge.Utils.dll
    Syntax
    public interface IReflectionHelper

    Properties

    CustomAssemblies

    All custom assemblies dynamically loaded by LemonEdge through AddIn Modules

    Declaration
    Assembly[] CustomAssemblies { get; }
    Property Value
    Type Description
    Assembly[]

    InvalidCustomAssemblies

    List of custom assemblies that have not been correctly loaded

    Declaration
    IEnumerable<(Assembly Assem, StringBuilder Reason)> InvalidCustomAssemblies { get; }
    Property Value
    Type Description
    IEnumerable<(Assembly Assem, StringBuilder Reason)>

    StandardAssemblies

    All standard assemblies as part of the LemonEdge application

    Declaration
    Assembly[] StandardAssemblies { get; }
    Property Value
    Type Description
    Assembly[]

    Methods

    AddAssembly(Assembly, Assembly)

    Indicates the system has loaded a specified assembly into the LemonEdge app domain and it should be added to the reflection cache, and can optionally replace any older version

    Declaration
    void AddAssembly(Assembly assembly, Assembly replace = null)
    Parameters
    Type Name Description
    Assembly assembly

    Add this assembly to the reflection cache

    Assembly replace

    Replace this existing assembly in the reflection cache with the specified assembly

    Remarks

    This is used by the core LemonEdge system when loading custom addins. As users can change addins this allows the system to replace older versions with newer ones as they are updated.

    GetAllDomainAssemblies()

    Return all dlls loaded into the current domain. Excludes any dlls that have subsequently been unloaded.

    Declaration
    IEnumerable<Assembly> GetAllDomainAssemblies()
    Returns
    Type Description
    IEnumerable<Assembly>

    A list of currently loaded assemblies, including custom LemonEdge AddIns that have been loaded

    GetAppInfo()

    Returns the location and application name of the currently executing application

    Declaration
    (string Path, string AppName) GetAppInfo()
    Returns
    Type Description
    (string paramArguments, string queryFilter)

    The location and application name of the currently executing application

    GetEnumTypes()

    Returns a list of all Enum types in the system

    Declaration
    IEnumerable<Type> GetEnumTypes()
    Returns
    Type Description
    IEnumerable<Type>

    A list of all Enums in the system

    GetNestedPropertyInfo(Type, string, string, bool)

    Returns the PropertyInfo definition for the specified property against a property on this type. Given Entity.ParentProperty.NestedProperty, this returns NestedProperty's definition.

    Declaration
    PropertyInfo GetNestedPropertyInfo(Type type, string parentPropertyName, string nestedPropertyName = null, bool throwIfMissing = true)
    Parameters
    Type Name Description
    Type type

    The type that holds the specified property

    string parentPropertyName

    The parent property that contains nestedPropertyName

    string nestedPropertyName

    The property to return property info on

    bool throwIfMissing

    Indicates if the property isn't found an ArgumentOutOfRangeException should be thrown, otherwise null is returned

    Returns
    Type Description
    PropertyInfo

    The PropertyInfo for the specified nestedPropertyName property on this type

    Exceptions
    Type Condition
    ArgumentOutOfRangeException

    If throwIfMissing is true and the specified property cant be found against the type, this exception is thrown

    GetPropertyInfo(Type, string, bool)

    Returns the PropertyInfo definition for the specified property against this type

    Declaration
    PropertyInfo GetPropertyInfo(Type type, string propName, bool throwIfMissing = true)
    Parameters
    Type Name Description
    Type type

    The type that holds the specified property

    string propName

    The property to return property info on

    bool throwIfMissing

    Indicates if the property isn't found an ArgumentOutOfRangeException should be thrown, otherwise null is returned

    Returns
    Type Description
    PropertyInfo

    The PropertyInfo for the specified propName property on this type

    Exceptions
    Type Condition
    ArgumentOutOfRangeException

    If throwIfMissing is true and the specified property cant be found against the type, this exception is thrown

    GetTypeFromFullName(string)

    Returns an instance of the type specified from the full name

    Declaration
    Type GetTypeFromFullName(string fullName)
    Parameters
    Type Name Description
    string fullName

    The full name of a given type

    Returns
    Type Description
    Type

    An instance of the type specified by its fullName

    GetTypesInheritingFrom(Assembly, Type, bool)

    Returns all types from the specified assembly that inherit the specified type

    Declaration
    IEnumerable<Type> GetTypesInheritingFrom(Assembly assembly, Type type, bool allowAbstract)
    Parameters
    Type Name Description
    Assembly assembly

    The assembly to return matching types from

    Type type

    The type to retrieve all other types that inherits from it

    bool allowAbstract

    Indicates if abstract types are to be included in the result set or not

    Returns
    Type Description
    IEnumerable<Type>

    A list of all types from the assembly assembly that inherit from type. Abstract types are included if allowAbstract is true.

    GetTypesInheritingFrom(Type, bool)

    Returns all types that inherit from the specified type

    Declaration
    IEnumerable<Type> GetTypesInheritingFrom(Type type, bool allowAbstract)
    Parameters
    Type Name Description
    Type type

    The type to retrieve all other types that inherits from it

    bool allowAbstract

    Indicates if abstract types are to be included in the result set or not

    Returns
    Type Description
    IEnumerable<Type>

    A list of all types that inherit from type. Abstract types are included if allowAbstract is true.

    GetTypesInheritingFrom<T>(bool)

    Returns all types that inherit from the specified type T

    Declaration
    IEnumerable<Type> GetTypesInheritingFrom<T>(bool allowAbstract)
    Parameters
    Type Name Description
    bool allowAbstract

    Indicates if abstract types are to be included in the result set or not

    Returns
    Type Description
    IEnumerable<Type>

    A list of all types that inherit from T. Abstract types are included if allowAbstract is true.

    Type Parameters
    Name Description
    T

    The type to retrieve all other types that inherits from it

    GetTypesWithAttribute<T>(bool)

    Returns a list of all types in the system that are marked with the specified attribute

    Declaration
    IEnumerable<(T AttributeInstance, Type Type)> GetTypesWithAttribute<T>(bool inherit = false) where T : Attribute
    Parameters
    Type Name Description
    bool inherit

    Indicates that a type should be included if the attribute is marked against its base type and not just itself

    Returns
    Type Description
    IEnumerable<(T AttributeInstance, Type Type)>

    A tuple list containing the attribute T instance and its associated type it is marked against

    Type Parameters
    Name Description
    T

    The attribute type to find all types that are marked with it

    Extension Methods

    LinqExtensions.AsArray<T>(T)
    LinqExtensions.ToArrayOfOne<T>(T)
    LinqExtensions.ToListOfOne<T>(T)
    MiscExtensions.SetIfNotEqual<T, TP>(T, Expression<Func<T, TP>>, TP)
    ReflectionHelperExtensions.InheritedType<T>(IReflectionHelper)
    WeakReferenceExtensions.WeakReference(object)
    SQLExtensions.ToSQLValue(object, bool)
    ReflectionExtensions.ClearEventInvocations(object, string)
    StringExtensions.ToCSVFormatString(object, Type)
    In this article
    Back to top © LemonEdge Technologies. All rights reserved.