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.Instance、十分でNonPublicはありません:

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

他のパラメータは問題ありません。

于 2014-11-02T16:13:59.640 に答える