Filtering out auto-generated methods (getter/setter/add/remove/.etc) returned by Type.GetMethods()

Viewed 5612

I use Type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic) to retrieve an array of methods for a given type.

The problem is the returned MethodInfo could include methods that are generated by the compiler which I don't want. For example:

  • property bool Enabled { get; } will get bool get_Enabled()

  • event SomethingChanged will get add_SomethingChanged(EventHandler) and remove_SomethingChanged(EventHandler)

I can probably add some filter logic to get rid of them which could potentially get very complicated. I want to know if there is something else I can do, such as with BindingFlags settings, to retrieve only user defined methods?

3 Answers
Related