Class ReflectionUtilities
Provides methods for working with class and type information at runtime.
Inheritance
Inherited Members
Namespace: Terrasoft.Common
Assembly: Terrasoft.Common.dll
Syntax
public static class ReflectionUtilities
Methods
ApplyPropertyAction(Object, Type, Action<Object, PropertyInfo>)
Applies action for each property with given attribute.
Declaration
public static void ApplyPropertyAction(object source, Type attributeType, Action<object, PropertyInfo> action)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Object. |
System.Type | attributeType | Type of attribute to find. |
System.Action<System.Object, System.Reflection.PropertyInfo> | action | Action to execute for found properties. |
FindTypeByShortName(Assembly, String)
Осуществляет поиск типа по заданному короткому имени в указанной сборке.
Declaration
public static Type FindTypeByShortName(Assembly assembly, string name)
Parameters
Type | Name | Description |
---|---|---|
System.Reflection.Assembly | assembly | Сборка, в которой осуществляется поиск. |
System.String | name | Имя типа. |
Returns
Type | Description |
---|---|
System.Type |
|
ForceGetValue(PropertyInfo, Object, Object[])
Возвращает значение текущего свойства либо значение метода get_имя свойства source
заданного объекта obj
.
Declaration
public static object ForceGetValue(this PropertyInfo source, object obj, object[] args)
Parameters
Type | Name | Description |
---|---|---|
System.Reflection.PropertyInfo | source | Атрибуты и метаданные текущего свойства. |
System.Object | obj | Объект , значение которого возвращается, если свойство |
System.Object[] | args |
Returns
Type | Description |
---|---|
System.Object | Объект, содержащий значение свойства. |
Remarks
Метод расширения для класса System.Reflection.PropertyInfo.
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | Если в качестве параметра |
InvalidObjectStateException | Если свойство |
GetDefValue(PropertyInfo)
Возвращает значение по умолчанию для заданного свойства.
Declaration
public static object GetDefValue(PropertyInfo property)
Parameters
Type | Name | Description |
---|---|---|
System.Reflection.PropertyInfo | property | Свойство. |
Returns
Type | Description |
---|---|
System.Object | Объект значения по умолчанию для свойства |
GetDefValue(Type)
Возвращает значение по умолчанию для заданного value-типа.
Declaration
public static object GetDefValue(Type type)
Parameters
Type | Name | Description |
---|---|---|
System.Type | type | Value-тип. |
Returns
Type | Description |
---|---|
System.Object | Объект значения по умолчанию для value-типа |
GetHierarchy(Type, Type)
Gets hierarchy of types.
Declaration
public static List<Type> GetHierarchy(this Type source, Type to)
Parameters
Type | Name | Description |
---|---|---|
System.Type | source | Type from to check. |
System.Type | to | Type to check to. |
Returns
Type | Description |
---|---|
System.Collections.Generic.List<System.Type> | Hierarchy types. |
GetInstanceFactory<TInstance>(Type)
Returns delegate that create instance of specified type using public parameterless constructor.
Declaration
public static Func<TInstance> GetInstanceFactory<TInstance>(Type instanceType)
Parameters
Type | Name | Description |
---|---|---|
System.Type | instanceType | Type of the instance. |
Returns
Type | Description |
---|---|
System.Func<TInstance> | Delegate that create instance of specified type if type has public parameterless
constructor, otherwise |
Type Parameters
Name | Description |
---|---|
TInstance | The type of the instance. |
GetIsOverriden(Type, MethodInfo)
Gets the value indicating whether method have been overriden in the source type.
Declaration
public static bool GetIsOverriden(this Type source, MethodInfo methodInfo)
Parameters
Type | Name | Description |
---|---|---|
System.Type | source | The property access expression. |
System.Reflection.MethodInfo | methodInfo | Method to check. |
Returns
Type | Description |
---|---|
System.Boolean | Property info instance. |
GetMethodInfo(Type, String, BindingFlags)
Declaration
public static MethodInfo GetMethodInfo(Type type, string methodName, BindingFlags bindingFlags)
Parameters
Type | Name | Description |
---|---|---|
System.Type | type | |
System.String | methodName | |
System.Reflection.BindingFlags | bindingFlags |
Returns
Type | Description |
---|---|
System.Reflection.MethodInfo |
GetPropertyDefValue(Object, String, Object)
Возвращает для экземпляра текущего типа значение свойства с заданным именем либо заданное значение по умолчанию, если текущий тип не содержит свойства с таким именем.
Declaration
public static object GetPropertyDefValue(this object source, string propertyName, object defValue)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyName | Имя свойства. |
System.Object | defValue | Значение по умолчанию. |
Returns
Type | Description |
---|---|
System.Object | Объект, содержащий значение свойства. |
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если в качестве параметра |
InvalidObjectStateException | Если свойство |
GetPropertyInfo<TSource, TValue>(Expression<Func<TSource, TValue>>)
Gets the expression property name.
Declaration
public static PropertyInfo GetPropertyInfo<TSource, TValue>(this Expression<Func<TSource, TValue>> source)
Parameters
Type | Name | Description |
---|---|---|
System.Linq.Expressions.Expression<System.Func<TSource, TValue>> | source | The property access expression. |
Returns
Type | Description |
---|---|
System.Reflection.PropertyInfo | Property info instance. |
Type Parameters
Name | Description |
---|---|
TSource | The property owner type. |
TValue | The property type. |
GetPropertyValue(Object, String)
Возвращает для экземпляра текущего типа значение свойства с заданным именем.
Declaration
public static object GetPropertyValue(this object source, string propertyName)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyName | Имя свойства. |
Returns
Type | Description |
---|---|
System.Object | Объект, содержащий значение свойства. |
Remarks
Метод расширения класса System.Object.
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если в качестве параметра |
InvalidObjectStateException | Если экземпляр текущего тип не содержит свойство с именем
|
GetPropertyValue(Object, String, BindingFlags)
Возвращает для экземпляра текущего типа значение свойства с заданным именем либо генерирует исключение, если текущий экземпляр не содержит свойства с заданным именем.
Declaration
public static object GetPropertyValue(this object source, string propertyName, BindingFlags bindingFlags)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyName | Имя свойства. |
System.Reflection.BindingFlags | bindingFlags | Флаги привязки типа System.Reflection.BindingFlags. |
Returns
Type | Description |
---|---|
System.Object | Значение свойства |
GetPropertyValueByPath(Object, String)
Возвращает для экземпляра текущего типа значение свойства по заданному пути к свойству.
Declaration
public static object GetPropertyValueByPath(this object source, string propertyPath)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyPath | Путь к свойству в формате [Имя свойства].[Имя вложенного свойства].<...>.[Имя результирующего свойства]. |
Returns
Type | Description |
---|---|
System.Object | Значение свойства |
Remarks
Метод расширения класса System.Object.
GetTypeNameWithoutAssemblyDetails(Type)
Returns the assembly qualified type name without assembly details such as version or culture.
Declaration
public static string GetTypeNameWithoutAssemblyDetails(Type type)
Parameters
Type | Name | Description |
---|---|---|
System.Type | type | The type. |
Returns
Type | Description |
---|---|
System.String |
HasProperty(Object, String)
Indicates if object has property by the specified name.
Declaration
public static bool HasProperty(this object source, string propertyName)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Object. |
System.String | propertyName | Property name. |
Returns
Type | Description |
---|---|
System.Boolean | Flag that indicates if object has property or not. |
IsTypeOf(Object, String, Boolean)
Проверяет, является ли заданный объект типом с указанным полным именем.
Declaration
public static bool IsTypeOf(object obj, string typeFullName, bool shallow)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj | Объект для проверки. |
System.String | typeFullName | Полное имя типа. |
System.Boolean | shallow | Признак проверки по всем уровням иерархии. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Remarks
Перегруженный метод.
IsTypeOf(Object, Type, Boolean)
Проверяет, является ли заданный объект указанным типом.
Declaration
public static bool IsTypeOf(object obj, Type type, bool shallow)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj | Объект для проверки. |
System.Type | type | Тип - эталон. |
System.Boolean | shallow | Признак проверки по всем уровням иерархии. |
Returns
Type | Description |
---|---|
System.Boolean |
|
SetPropertyValue(Object, String, Object)
Устанавливает для экземпляра текущего типа значение свойства с заданным именем.
Declaration
public static void SetPropertyValue(this object source, string propertyName, object value)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyName | Имя свойства. |
System.Object | value | Значение свойства. |
Remarks
Метод расширения для класса System.Object.
Exceptions
Type | Condition |
---|---|
ArgumentNullOrEmptyException | Если в качестве параметра |
InvalidObjectStateException | Если экземпляр текущего типа не содержит свойство с именем
|
InvalidTypeCastException | Если тип свойства с именем
|
TryGetPropertyValue(Object, String, out Object)
Определяет, возможно ли у экземпляра текущего типа получить значение свойства с заданным именем.
Declaration
public static bool TryGetPropertyValue(this object source, string propertyName, out object value)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyName | Имя свойства. |
System.Object | value | Значение свойства. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Remarks
Метод расширения класса System.Object.
TrySetPropertyValue(Object, String, Object)
Пытается установить для экземпляра текущего типа значение для заданного свойства.
Declaration
public static bool TrySetPropertyValue(this object source, string propertyName, object value)
Parameters
Type | Name | Description |
---|---|---|
System.Object | source | Тип. |
System.String | propertyName | Имя свойства. |
System.Object | value | Значение свойства. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Remarks
Метод расширения для класса System.Object.