c# - name - Obtenga el atributo DisplayAttribute de PropertyInfo
get display name attribute c# (1)
class SomeModel
{
[Display(Name = "Quantity Required")]
public int Qty { get; set; }
[Display(Name = "Cost per Item")]
public int Cost { get; set; }
}
Estoy tratando de asignar el modelo a una lista de pares { PropertyName, DisplayName }
, pero me he quedado atascado.
var properties
= typeof(SomeModel)
.GetProperties()
.Select(p => new
{
p.Name,
p.GetCustomAttributes(typeof(DisplayAttribute),
false).Single().ToString()
}
);
Lo anterior no compila y no estoy seguro de que sea el enfoque correcto de todos modos, pero espero que pueda ver la intención. Cualquier punteros? Gracias
Es necesario definir diferentes nombres de propiedades para el tipo anónimo.
var properties = typeof(SomeModel).GetProperties()
.Where(p => p.IsDefined(typeof(DisplayAttribute), false))
.Select(p => new
{
PropertyName = p.Name, p.GetCustomAttributes(typeof(DisplayAttribute),
false).Cast<DisplayAttribute>().Single().Name
});