NDD,折腾了一下午,反射不出来。public static class ClassA
{
public static object Method1(string str){} public static object Method1<T>(IList<T> list){}
}
静态类中有Method12个静态方法,我想反射执行这个泛型方法Method1<T>(IList<T> list)
但是怎么都反射不到这个泛型方法,求帮助谢谢。因为有同名方法,所以我是采用Type.GetType(typeName).GetMethod(methodName, types)来获取方法。
但麻烦的是types,如果用Type.GetType("System.Collections.Generic.IList`1[T]),返回是个null。
如果T写了明确的实体对象,还是无法反射到这个泛型方法。
{
public static object Method1(string str){} public static object Method1<T>(IList<T> list){}
}
静态类中有Method12个静态方法,我想反射执行这个泛型方法Method1<T>(IList<T> list)
但是怎么都反射不到这个泛型方法,求帮助谢谢。因为有同名方法,所以我是采用Type.GetType(typeName).GetMethod(methodName, types)来获取方法。
但麻烦的是types,如果用Type.GetType("System.Collections.Generic.IList`1[T]),返回是个null。
如果T写了明确的实体对象,还是无法反射到这个泛型方法。
http://www.cnblogs.com/mgen/archive/2011/12/02/2271852.html
你这比较屌,动态生成方法,但不是我要的。
而且里面有句var mbuilder = tb.DefineMethod("doo", MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.Static);
可我这DefineMethod是个属性,不是方法啊
只告诉你一个关键字“MethodInfo.MakeGenericMethod()”方法剩下的事情你google把,5秒种找到答案
foreach (MethodInfo info in ms)
{
if (info.Name == "Method1" && info.IsGenericMethod)
{
MessageBox.Show("ok");
break;
}
}