Damkulul
Damkulul

Reputation: 1476

how to prevent getmethods from retrieve a specific method

I have a static class with private functions, I want to get all functions except one. I tried using Ignorecase but i get an overload exception... I do it exactly like many examples online but I get an error and I dont know why...am I missing something?

//Example

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

Upvotes: 0

Views: 47

Answers (1)

Yuval Itzchakov
Yuval Itzchakov

Reputation: 149598

If you want all methods except one with a particular name, you can use Enumerable.Where to filter:

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

Upvotes: 1

Related Questions