如何从父 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;
}
b1
是 field,而不是 属性。你应该
使用GetFields()
:
FieldInfo[] fields = t.GetFields();
这将获得字段(如预期的那样)- 请注意 the documentation 表示
Generally, you should use fields only for variables that have private or protected accessibility.
将 b1
设为 属性,例如通过向其添加 { get; set; }
访问器。
我想使用 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;
}
b1
是 field,而不是 属性。你应该
使用
GetFields()
:FieldInfo[] fields = t.GetFields();
这将获得字段(如预期的那样)- 请注意 the documentation 表示
Generally, you should use fields only for variables that have private or protected accessibility.
将
b1
设为 属性,例如通过向其添加{ get; set; }
访问器。