测试属性是否在派生类中声明

时间:2009-02-25 03:57:05

标签: .net reflection

我有两个班级

public class A
{
  public int BaseA
{get;set;}
}

public Class B: A
{
 public int BaseB
{get;set;}
}

我可以使用typeof(B).GetProperties()获取B类的属性。但是,这将包括BaseA和BaseB属性。但我想只获取BaseB属性。

注意:我找到了解决方案,它是

  B boy = new B();
            var pList = boy.GetType().GetProperties(BindingFlags.Public |
                  BindingFlags.DeclaredOnly |
                  BindingFlags.Instance);
            Assert.AreEqual(1, pList.Length);

类似的解决方案can be found here

1 个答案:

答案 0 :(得分:3)

在调用Type.GetProperties()时使用BindingFlags.DeclaredOnly。