Подтвердить что ты не робот

GetType(). GetMethods не возвращает никаких методов при использовании BindingFlag

Итак, я пытаюсь получить все частные методы в моем классе, которые имеют определенный атрибут. Когда я делаю

this.GetType().GetMethods()

Это возвращает 18 методов, все из которых являются общедоступными. Поэтому я попытался изменить его, чтобы использовать флаги Binding, такие как:

this.GetType().GetMethods(BindingFlags.NonPublic);

Это приводит к возврату нулевых результатов. Затем я начал играть, и я не могу получить никаких переопределений GetMethods(BindingFlags.x) для работы.

this.GetType().GetMethods(BindingFlags.Default);
this.GetType().GetMethods(BindingFlags.Public);

Все из них возвращают нулевые результаты. Что я делаю неправильно?

4b9b3361

Ответ 1

Вы должны передать BindingFlags.Instance для соответствия методам экземпляра:

this.GetType().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic);

Вы также можете добавить BindingFlags.Static к флагам, если вам нужны как экземпляры, так и статические методы.