繁体   English   中英

通过类的反射属性获取,但不是从继承的类获取

[英]Get by reflection properties of class ,but not from inherited class

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)

返回两个属性:/

您应该将BindingFlags.DeclaredOnly添加到您的标志中,即:

typeof(Child).GetProperties(System.Reflection.BindingFlags.Public
    | System.Reflection.BindingFlags.Instance
    | System.Reflection.BindingFlags.DeclaredOnly)

尝试使用DeclaredOnly绑定标志。 它应该将返回的属性限制为仅在您感兴趣的类上声明的属性。这是一个代码示例:

PropertyInfo[] properties = typeof(Child).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.DeclaredOnly);

添加BindingFlags.DeclaredOnly

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM