Что такое критерии фильтра в Type.FindMembers C#

Я искал его в Интернете в течение нескольких часов, не находя удовлетворительного ответа на этот вопрос. Я знаю, что именно он определяет, что будет включено в объект MemberInfo, но каковы именно возможные значения для этого

 public class TestTypeOf
{
    private int tt;
    private string tt2;

    public void test()
    {

        Type type = typeof(TestTypeOf);
        MemberInfo[] info = type.FindMembers(MemberTypes.All, BindingFlags.NonPublic, new MemberFilter(searchFilter), "tt");
        Console.WriteLine(type.BaseType);
        Console.WriteLine(type.Assembly);
        Console.WriteLine(type.Attributes);
        Console.WriteLine(type.FullName);

        foreach (var Info in info)
            Console.WriteLine(Info.ToString());
    }

    private static bool searchFilter(MemberInfo memObj, object obj)
    {
        if (memObj.Name.ToString() == obj.ToString())
            return true;
        else
            return false;
    }
}

это код, который я использовал, и он возвращает и пустой массив. Я знаю, что критерий поиска имеет неправильный параметр, но есть ли что-то еще??

1 ответ

Решение

Тебе нужно BindingFlags.Instance также, NonPublic недостаточно:

MemberInfo[] info = type.FindMembers(MemberTypes.All, BindingFlags.Instance | BindingFlags.NonPublic, new MemberFilter(searchFilter), "tt");

Ваши другие параметры в порядке.

Другие вопросы по тегам