Get DisplayAttribute attribute from PropertyInfo
-
27-10-2019 - |
문제
class SomeModel
{
[Display(Name = "Quantity Required")]
public int Qty { get; set; }
[Display(Name = "Cost per Item")]
public int Cost { get; set; }
}
I'm trying to map the model into a list of { PropertyName, DisplayName }
pairs, but I've got stuck.
var properties
= typeof(SomeModel)
.GetProperties()
.Select(p => new
{
p.Name,
p.GetCustomAttributes(typeof(DisplayAttribute),
false).Single().ToString()
}
);
The above doesn't compile and I'm not sure it's the right approach anyway, but hopefully you can see the intent. Any pointers? Thanks
해결책
You need to define different names of properties for anonymous type.
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
});
제휴하지 않습니다 StackOverflow