简单的“反射调用泛型方法”
核心是“MethodInfo.MakeGenericMethod(params Type[] typeArguments)”方法。
- 首先定义一个对象。
public class A {
public T[] B<T>() where T : new()
{
return new T[] { new T(), new T() };
}
}
- 调用。
A a = new A();
Type t = a.GetType();
MethodInfo mi = t.GetMethod("B");
MethodInfo mii = mi.MakeGenericMethod(typeof(System.Data.DataTable));
object o = mii.Invoke(a, null);