如何防止getmethods检索特定方法

时间:2015-12-05 14:11:38

标签: c# reflection

我有一个带私有函数的静态类,我想获得除一个函数之外的所有函数。我尝试使用Ignorecase但是我得到了一个重载异常......我这样做就像在线很多例子但我得到一个错误,我不知道为什么......我错过了什么?

//例

static MethodInfo[] allFuncs ;
static Type myType = typeof(myClass);        
allFuncs = myType.GetMethods("innerFunction", 
                BindingFlags.IgnoreCase | BindingFlags.NonPublic | BindingFlags.Static);

1 个答案:

答案 0 :(得分:1)

如果您想要除具有特定名称的方法之外的所有方法,您可以使用Enumerable.Where进行过滤:

allFuncs = typeof(MyClass).GetMethods(BindingFlags.NonPublic | BindingFlags.Static)
                          .Where(method => !method.Name.Equals(
                                    "innerFunction", StringComparison.OrdinalIgnoreCase));