简单的“反射调用泛型方法”

核心是“MethodInfo.MakeGenericMethod(params Type[] typeArguments)”方法。

  1. 首先定义一个对象。
    public class A {
     
        public T[] B<T>() where T : new()
        {
            return new T[] { new T(), new T() };
        }
     
    }

  2. 调用。
    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);
posted @ 2011-02-14 16:54  文明的天空  阅读(255)  评论(0编辑  收藏  举报