PropertyInfoからDisplayAttribute属性を取得します
-
27-10-2019 - |
質問
class SomeModel
{
[Display(Name = "Quantity Required")]
public int Qty { get; set; }
[Display(Name = "Cost per Item")]
public int Cost { get; set; }
}
モデルをのリストにマッピングしようとしています { PropertyName, DisplayName }
ペア、しかし私は立ち往生しています。
var properties
= typeof(SomeModel)
.GetProperties()
.Select(p => new
{
p.Name,
p.GetCustomAttributes(typeof(DisplayAttribute),
false).Single().ToString()
}
);
上記はコンパイルされず、とにかく正しいアプローチであるかどうかはわかりませんが、うまくいけば意図を見ることができます。ポインターはありますか?ありがとう
解決
匿名タイプのプロパティの異なる名前を定義する必要があります。
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