Что такое критерии фильтра в 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");
Ваши другие параметры в порядке.