class Parent {
public string A { get; set; }
}
class Child : Parent {
public string B { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我只需要获得属性B,没有属性A但是
Child.GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance)
Run Code Online (Sandbox Code Playgroud)
返回两个属性:/
Fra*_*lli 139
您应该将BindingFlags.DeclaredOnly添加到您的标志中,即:
typeof(Child).GetProperties(System.Reflection.BindingFlags.Public
| System.Reflection.BindingFlags.Instance
| System.Reflection.BindingFlags.DeclaredOnly)
Run Code Online (Sandbox Code Playgroud)
尝试使用DeclaredOnly绑定标志.它应该将返回的属性限制为仅在您感兴趣的类上声明的属性.这是一个代码示例:
PropertyInfo[] properties = typeof(Child).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly);
Run Code Online (Sandbox Code Playgroud)
来自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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24504 次 |
| 最近记录: |