如何获取MethodInfo
的{{1}}?
我尝试使用此代码,但无效。
Array.IndexOf<string>(string[], string)
答案 0 :(得分:7)
使用BindingFlags.Public | BindingFlags.Static
修改:
以下评论是正确的,问题是IndexOf
方法是通用的 - 只有Array.IndexOf<T>(T[], T)
。为了得到那个,这对我有用:
var indexOfGeneric = typeof(Array).GetMethods(BindingFlags.Public | BindingFlags.Static)
.First(m => m.Name == "IndexOf"
&& m.GetParameters().Length == 2
&& m.IsGenericMethod );
答案 1 :(得分:4)
发现这篇博文似乎可以满足您的要求;
http://blog.functionalfun.net/2009/10/getting-methodinfo-of-generic-method.html
样本用法如下;
var m = SymbolExtensions.GetMethodInfo(() => Array.IndexOf<string>(null, null));
这样,您获得了MethodInfo
IndexOf<String>(String[], String)
而不是IndexOf<T>(T[], T)
。