c# вывести классы и их public и protected методы из dll

foreach (MethodInfo members in oType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.NonPublic))
{
   //...
}

Имеется такое задание: "Функция должна возвращать имен а всех public и protected методов, которые содержатся в классах, находящихся в этих .NET сборках, сгруппированные по именам классов."

Этот код выводит полностью все методы, как сделать так чтобы выводились только public и protected?


Ответы (1 шт):

Автор решения: Andrei Khotko

Вам нужно отфильтровать методы по свойству IsFamily, чтобы получить только protected методы

foreach (MethodInfo members in oType.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.NonPublic))
{
    if (members.IsFamily)
    {
        // Здесь делаете то, что нужно с protected методами
    }
}

Если нужны и public, и protected методы, то меняем условие:

if (members.IsFamily || members.IsPublic)
{
    // Здесь делаете то, что нужно с protected и public методами
}
→ Ссылка