Получение MethodInfo только для защищенных и открытых методов?

Как я могу получить MethodInfo за protected а также public только методы?

3 ответа

Решение

Прямого пути нет. Что вы можете сделать, это проверить IsFamily а также IsPublic флаг MethodInfo:

minfo = b.GetType().GetMethod("publicProtectedMember", 
        BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public);
if (minfo.IsFamily || minfo.IsPublic)
{
  string s = fd.Member();
}

Ну, ты не можешь просто получить все MemberInfoи отфильтровать их IsFamily а также IsPublic свойства?

using System.Linq;
using System.Reflection;

var methods = foo
    .GetType()
    .GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
    .Where(m => m.IsFamily || m.IsPublic);
Другие вопросы по тегам