47 lines
953 B
C#
47 lines
953 B
C#
|
namespace SRF.Helpers
|
|||
|
{
|
|||
|
using System;
|
|||
|
using System.Reflection;
|
|||
|
|
|||
|
public static class SRReflection
|
|||
|
{
|
|||
|
public static void SetPropertyValue(object obj, PropertyInfo p, object value)
|
|||
|
{
|
|||
|
#if NETFX_CORE
|
|||
|
p.SetValue(obj, value, null);
|
|||
|
#else
|
|||
|
p.GetSetMethod().Invoke(obj, new[] {value});
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
public static object GetPropertyValue(object obj, PropertyInfo p)
|
|||
|
{
|
|||
|
#if NETFX_CORE
|
|||
|
return p.GetValue(obj, null);
|
|||
|
#else
|
|||
|
return p.GetGetMethod().Invoke(obj, null);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
public static T GetAttribute<T>(MemberInfo t) where T : Attribute
|
|||
|
{
|
|||
|
#if !NETFX_CORE
|
|||
|
return Attribute.GetCustomAttribute(t, typeof (T)) as T;
|
|||
|
#else
|
|||
|
return t.GetCustomAttribute(typeof (T), true) as T;
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
#if NETFX_CORE
|
|||
|
|
|||
|
public static T GetAttribute<T>(Type t) where T : Attribute
|
|||
|
{
|
|||
|
|
|||
|
return GetAttribute<T>(t.GetTypeInfo());
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
#endif
|
|||
|
}
|
|||
|
}
|