Taylohtio/FBAUsersSearch/CustomFBADataSource/ReflectionHelper.cs

30 lines
1.2 KiB
C#

using System;
using System.Reflection;
namespace Taloyhtio.CustomFBADataSource
{
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().FindMembers(MemberTypes.Method, bf, Type.FilterName, name)[0] as MethodInfo;
return mi.Invoke(obj, argv);
}
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);
}
public static object GetStaticData(Type t, string name)
{
BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic;
FieldInfo fi = t.FindMembers(MemberTypes.Field, bf, Type.FilterName, name)[0] as FieldInfo;
return fi.GetValue(null);
}
}
}