GetCustomAttributes (true) не возвращает атрибуты от родительского типа? - PullRequest
1 голос
/ 10 ноября 2011

У меня есть следующие (очень упрощенные) классы:

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);

Проблема в том, что атрибут Required не возвращается, когда я смотрю на свойство LastName типа SalesCustomer, но он отлично работает, когда я смотрю на тип Customer. Это сбивает с толку, поскольку метод GetCustomerAttribute () явно хочет логическое значение, указывающее, что унаследованные атрибуты будут возвращены.

1 Ответ

2 голосов
/ 10 ноября 2011

Я полагаю, что он будет возвращать атрибуты только от переопределенных родительских элементов, а не теневых родительских элементов.

Сделать базовое свойство virtual и дочернее свойство overrrides.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...