0

我已经在互联网上搜索了几个小时,但没有找到令人满意的答案

 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;
    }
}

那是我一直在使用的代码,它返回空数组我知道搜索条件有错误的参数,但还有别的吗?

4

1 回答 1

3

您还需要BindingFlags.InstanceNonPublic还不够:

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

你的其他参数没问题。

于 2014-11-02T16:13:59.640 回答