我有以下(大大简化)的课程:
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()方法显式地需要一个布尔值来指示将返回继承的属性。
答案 0 :(得分:2)
我相信它只会从重写父成员返回属性,而不会返回阴影父成员。
创建基本属性virtual
和子属性overrrides
。