如何反射静态泛型方法?
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方法,只能遍历了