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);
Все из них возвращают нулевые результаты. Что я делаю неправильно?
Ответы
Ответ 1
Вы должны передать BindingFlags.Instance для соответствия методам экземпляра:
this.GetType().GetMethods(BindingFlags.Instance | BindingFlags.NonPublic);
Вы также можете добавить BindingFlags.Static
к флагам, если вам нужны как экземпляры, так и статические методы.