如何反射静态泛型方法?
NDD,折腾了一下午,反射不出来。
C# code
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写了明确的实体对象,还是无法反射到这个泛型方法。
------解决方案--------------------遍历
C# code
MethodInfo[] ms = Type.GetType("WindowsApplication1.ClassA").GetMethods();
foreach (MethodInfo info in ms)
{
if (info.Name == "Method1" && info.IsGenericMethod)
{
MessageBox.Show("ok");
break;
}
}
------解决方案--------------------
------解决方案--------------------
http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/f901efc1-2baa-480f-a3cf-bb5b5df60a80
这里说了,这是.net的限制,没有办法单独通过GetMethod获取generic方法,只能遍历了