如何获取 Array.IndexOf<string>(string[], string) MethodInfo?



如何为Array.IndexOf<string>(string[], string)获取MethodInfo

我尝试使用此代码,但不起作用。

typeof(Array).GetMethod("IndexOf", 
 BindingFlags.Public | BindingFlags.Static, null, 
  new Type[] { typeof(string[]), typeof(string) }, null);

使用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 );

发现这篇博客文章似乎达到了你的要求;

http://blog.functionalfun.net/2009/10/getting-methodinfo-of-generic-method.html

示例用法如下;

var m = SymbolExtensions.GetMethodInfo(() => Array.IndexOf<string>(null, null));

通过这种方式,您可以获得IndexOf<String>(String[], String)MethodInfo,而不是IndexOf<T>(T[], T)

相关内容

  • 没有找到相关文章