のカスタム属性を取得します。私はenumValue.GetType().GetMember(enumValue.ToString())
と列挙値のカスタム属性を取得することができるよということを知っている「正常な」.NETで今私は列挙型の値で定義されたカスタム属性を取得したいWinRTの.NETアプリケーション(C#の)で列挙型の値
public enum MyEnum
{
[Display(Name="Foo")]
EnumValue1,
[Display(Name="Bar")]
EnumValue2
}
:たとえば、次の列挙型を取ります。
残念ながら、WinRTの.NETでGetMember()
方法は、Typeクラスでは使用できません。
これと一緒に行く方法はありますか?
============================================== =======
下記のMarcのおかげで、私はの回答を見つけました! 次のコードは、.NET 4.5 WinRTの中に列挙型の値から特定のカスタム属性を取得するために動作します:
public static class EnumHelper
{
public static T GetAttribute<T>(this Enum enumValue)
where T : Attribute
{
return enumValue
.GetType()
.GetTypeInfo()
.GetDeclaredField(enumValue.ToString())
.GetCustomAttribute<T>();
}
}
は "WinRTのC#の" でプレフィックスyurのタイトルをdo'tしてください。それがタグのためのものです。 –
それはできません。 Type.GetMemberは.Net 4.5にまだ存在します! – logicnp
@logicnp:WinRT APIは、完全な.NET APIのサブセットです。 –