30 lines
1.3 KiB
C#
30 lines
1.3 KiB
C#
using System;
|
|
using System.Reflection;
|
|
|
|
namespace CondoUpdate.DisableReputationOnDiscussionBoard
|
|
{
|
|
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);
|
|
}
|
|
}
|
|
}
|