如何从父 class 获取属性

How to get properties from parent class

我想使用 GetProperties 通过子项从父项 class 获取属性,尽管对此进行了研究,但没有成功。

我试了下没有结果:

PropertyInfo[] fields = t.GetProperties();
PropertyInfo[] fields1 = t.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.FlattenHierarchy);
PropertyInfo[] propNames = t.BaseType.GetProperties( BindingFlags.Public | BindingFlags.Instance);

只是从子 class 那里得到了属性,但没有从父那里得到属性。

public class A: B
{
    public string a1 { get; set; }

    public string a2 { get; set; }

    public string a3 { get; set; }

    public string a4 { get; set; }
}

public class B
{
    public string b1;
}

使用此代码,我得到了 A 的属性,但没有得到 B 中的 属性。

此代码有效吗?我需要在某个地方配置一些东西吗?

在您的声明中

public class B
{
    public string b1;
}

b1field,而不是 属性。你应该

  • 使用GetFields():

    FieldInfo[] fields = t.GetFields();
    

    这将获得字段(如预期的那样)- 请注意 the documentation 表示

    Generally, you should use fields only for variables that have private or protected accessibility.

  • b1 设为 属性,例如通过向其添加 { get; set; } 访问器。