获取枚举值的自定义属性

在WinRT .NET应用程序(C#)中,我想获取在枚举值上定义的自定义属性。 以下面的枚举为例:

public enum MyEnum { [Display(Name="Foo")] EnumValue1, [Display(Name="Bar")] EnumValue2 } 

现在在“普通”.NET中,我知道我能够使用enumValue.GetType().GetMember(enumValue.ToString())获取枚举值的自定义属性enumValue.GetType().GetMember(enumValue.ToString())

不幸的是,在WinRT .NET中,Type类上没有GetMember()方法。
有什么建议怎么搭配?

================================================== ===

感谢下面的Marc,我找到了答案 ! 以下代码用于从.NET 4.5 WinRT中的枚举值获取特定的自定义属性:

 public static class EnumHelper { public static T GetAttribute(this Enum enumValue) where T : Attribute { return enumValue .GetType() .GetTypeInfo() .GetDeclaredField(enumValue.ToString()) .GetCustomAttribute(); } } 

您可能应该专门查看字段,而不是寻找成员 。 如果在WinRT中的Type上不可用,请using System.Reflection;添加using System.Reflection; 并使用type.GetTypeInfo()并在那里查看,因为各种reflection方面被移动到type-in​​fo。