在C#中通过反射的方式调用定义为泛型的方法时,我们需要先根据方法名称获取方法描写对象“MethodInfo”,然后通过
该对象的“MakeGenericMethod”方法构造出对应实际泛型类型的泛型方法,从而才能被我们使用:
// 定义的泛型方法结构 public void Test<T>(); // 获取当前类型 Type type = this.GetType(); // 获取Test的方法对象 MethodInfo methodInfo = type.GetMethod("Test"); // 定义泛型类型 Type genericType = typeof(int); // 获取对应泛型类型的泛型方法 methodInfo = methodInfo.MakeGenericMethod(genericType); // 反射调用泛型方法 methodInfo.Invoke(this, null);