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

本文关键字:类型 父类 返回 属性 true GetCustomAttributes | 更新日期: 2023-09-27 18:13:54

我有以下(大大简化的)类:

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()方法显式地需要一个布尔值,表示将返回继承的属性。

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

我相信它只会返回覆盖的父成员的属性,而不是阴影父成员的属性。

使基属性为virtual,子属性为overrrides