class Parent {
public string A { get; set; }
}
class Child : Parent {
public string B { get; set; }
}
我只需要获得属性B,没有属性A. 但
Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
返回两个属性:/
答案 0 :(得分:130)
您应该在标志中添加 BindingFlags.DeclaredOnly ,例如:
typeof(Child).GetProperties(System.Reflection.BindingFlags.Public
| System.Reflection.BindingFlags.Instance
| System.Reflection.BindingFlags.DeclaredOnly)
答案 1 :(得分:7)
尝试使用DeclaredOnly绑定标志。它应该将返回的属性限制为仅在您感兴趣的类上声明的属性。 这是一个代码示例:
PropertyInfo[] properties = typeof(Child).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly);
答案 2 :(得分:4)
添加BindingFlags.DeclaredOnly
答案 3 :(得分:3)
来自 Type.cs :在这种情况下使用DeclaredOnlyLookup
private const BindingFlags DefaultLookup = BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public;
internal const BindingFlags DeclaredOnlyLookup = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;