的自定義屬性在WinRT的.NET應用程序(C#)我想要得到的自定義屬性,那些對枚舉值定義。看看下面的枚舉,例如:獲取枚舉值
public enum MyEnum
{
[Display(Name="Foo")]
EnumValue1,
[Display(Name="Bar")]
EnumValue2
}
現在,在「正常」。NET我知道,我能與enumValue.GetType().GetMember(enumValue.ToString())
獲得枚舉值的自定義屬性。
不幸的是,在WinRT中.NET的GetMember()
方法不可用的Type類。
任何建議如何去與此?
============================================== =======
得益於以下馬克,我找到了答案! 下面的代碼工作得到來自枚舉值特定的自定義屬性在.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>();
}
}
請do't前綴尤爾職稱 「的WinRT C#:」 和這樣的。這就是標籤的用途。 –
那是不可能的。 Type.GetMember仍然存在於.Net 4.5中! – logicnp
@logicnp:WinRT API是完整.NET API的子集。 –