C#反射代码不起作用;

gri*_*egs 1 c# reflection

我有这个非常简单的测试,因为完整版本也不起作用;

public class dfd
{
    public string g { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后;

        Type myType = typeof(dfd);
        FieldInfo[] b = myType.GetFields(BindingFlags.Public);
Run Code Online (Sandbox Code Playgroud)

当我看到b时,没有字段信息.

{System.Reflection.FieldInfo[0]}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

car*_*ira 7

您有一个自动公共属性,它定义了一个私有字段.如果您要求非公共字段,您将获得该属性的支持字段.

顺便说一句,你需要要求两者BindingFlags.NonPublic | BindingFlags.Instance,否则你将无法检索该字段.

  • 改为使用PropertyInfo.似乎更有意义. (4认同)