Итак, я с радостью добавил пространство имен System.ComponentModel.DataAnnotations в свою модель.
Я добавил такие вещи, как:
[Required] [DisplayName("First Name")]
public string first_name {get;set;}
Мне действительно нравятся эти атрибуты, потому что они избавляют меня от необходимости писать собственные T4 и / или сильно изменять представления. Таким образом, я могу восстановить представление, уверенное, что оно добавит отображаемые имена, которые я хочу, и т. Д.
Проблема возникает, когда я начал создавать помощник DataGrid, вдохновленный тем, что был запущен в ASP.NET MVC2.
В этом помощнике Стивен использует отражение, чтобы добраться до заголовков столбцов.
var value=typeOf(T).GetProperty(columnName).GetValue(item,null) ?? String.Empty;
Ну, проблема в том, что я не хочу получать имя свойства. Я хочу получить значение для атрибута DisplayName.
Моей первой попыткой было заглянуть внутрь свойства Attributes класса PropertyInfo. К сожалению, ни одна из аннотаций данных не отображается как атрибут.
Есть ли способ получить аннотации данных с помощью отражения?
Спасибо
Рон