我有这个小问题,我无法弄清楚哪些参数传递给Type.GetMethod以获取非泛型类型的泛型方法的MethodInfo。 具体来说,我有这种类型的定义:如何获取非泛型.NET类型的泛型方法的MethodInfo?
public static class A
{
public static B F<T>(bool dummy)
{
}
public static B F<T>(IEnumerable<T> arg)
{
...
}
}
我尝试了好几种在Type.GetMethod需要,但没有将返回在F方法的MethodInfo。
我知道我可以调用Type.GetMethods或Type.FindMember,但我对Type.GetMethod感兴趣。
任何想法?
谢谢。
编辑
其实,我的代码是一个比较复杂的。泛型方法被重载,所以我不能只使用函数名称来使用Type.GetMethod。 我想这些变种:
typeof(A).GetMethod("F", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F`1", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F[T]", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
typeof(A).GetMethod("F[[T]]", BindingFlags.Static | BindingFlags.Public, null, new Type[]{ typeof(IEnumerable<>) }, null)
请发布您尝试过的代码。 – 2009-10-26 13:36:23
更改了我的问题。谢谢。 – mark 2009-10-26 13:48:12
@Mark我改变了我的答案。 – 2009-10-26 14:13:56