GetCustomAttributes(true)不返回父类型的属性?

时间:2011-11-09 21:25:22

标签: c# validation reflection

我有以下(大大简化)的课程:

public class Customer {
    [Required(ErrorMessageResourceName="Required", ErrorMessageResourceType=typeof(ResourcesCommon.ValidationStrings))]
    public string LastName { get; set; }
}

public class SalesCustomer : Customer {
    ...
}

我有一些循环通过SalesCustomer属性的验证代码。每个属性都用以下方法评估:

 var validators = property.GetCustomAttributes(typeof(ValidationAttribute), true);

问题是当我查看SalesCustomer类型的LastName属性时,不会返回Required属性,但是当我查看Customer类型时它确实可以正常工作。这很令人困惑,因为GetCustomerAttribute()方法显式地需要一个布尔值来指示将返回继承的属性。

1 个答案:

答案 0 :(得分:2)

我相信它只会从重写父成员返回属性,而不会返回阴影父成员。

创建基本属性virtual和子属性overrrides