58 lines
3.0 KiB
C#
58 lines
3.0 KiB
C#
using System;
|
|
using System.Reflection;
|
|
|
|
namespace Taloyhtio.CustomTelerikField
|
|
{
|
|
public static class ReflectionHelper
|
|
{
|
|
// public static object CallMethod(object obj, string name, params object[] argv)
|
|
// {
|
|
// BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
// MethodInfo mi = obj.GetType().BaseType.FindMembers(MemberTypes.Method, bf, Type.FilterName, name)[0] as MethodInfo;
|
|
// return mi.Invoke(obj, argv);
|
|
// }
|
|
|
|
public static object CallMethod(object obj, Type type, string name, params object[] argv)
|
|
{
|
|
BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
MethodInfo mi = type.FindMembers(MemberTypes.Method, bf, Type.FilterName, name)[0] as MethodInfo;
|
|
return mi.Invoke(obj, argv);
|
|
}
|
|
|
|
// public static object GetFieldValue(object obj, string name)
|
|
// {
|
|
// BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
// FieldInfo fi = obj.GetType().BaseType.FindMembers(MemberTypes.Field, bf, Type.FilterName, name)[0] as FieldInfo;
|
|
// return fi.GetValue(obj);
|
|
// }
|
|
|
|
public static object GetFieldValue(object obj, Type type, string name)
|
|
{
|
|
BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
FieldInfo fi = type.FindMembers(MemberTypes.Field, bf, Type.FilterName, name)[0] as FieldInfo;
|
|
return fi.GetValue(obj);
|
|
}
|
|
|
|
// public static void SetFieldValue(object obj, string name, object value)
|
|
// {
|
|
// BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
// FieldInfo fi = obj.GetType().BaseType.BaseType.BaseType.FindMembers(MemberTypes.Field, bf, Type.FilterName, name)[0] as FieldInfo;
|
|
// fi.SetValue(obj, value);
|
|
// }
|
|
|
|
public static void SetFieldValue(object obj, Type type, string name, object value)
|
|
{
|
|
BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
FieldInfo fi = type.FindMembers(MemberTypes.Field, bf, Type.FilterName, name)[0] as FieldInfo;
|
|
fi.SetValue(obj, value);
|
|
}
|
|
|
|
// public static object CallStaticMethod(Type t, string name, params object[] argv)
|
|
// {
|
|
// BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
|
|
// MethodInfo mi = t.FindMembers(MemberTypes.Method, bf, Type.FilterName, name)[0] as MethodInfo;
|
|
// return mi.Invoke(null, argv);
|
|
// }
|
|
}
|
|
}
|