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); } } }