Bir WinRT .NET uygulamasında (C#) Enum değerinde tanımlanan özel öznitelikleri almak istiyorum. Örneğin aşağıdaki enum atın: Enum değerinin özel öznitelikleri alın
public enum MyEnum
{
[Display(Name="Foo")]
EnumValue1,
[Display(Name="Bar")]
EnumValue2
}
Şimdi "normal" NET'te ben
enumValue.GetType().GetMember(enumValue.ToString())
bir enum değerinin özel ayrıntıları elde edebilmek olduğumu biliyorum.
WinRT .NET içinde, GetMember()
yöntemi, Type sınıfında mevcut değildir.
Her türlü öneri nasıl yapılır?
================================= =======
Aşağıdaki Marc'a teşekkürler, cevabını buldum! Aşağıdaki kod .NET 4.5 WinRT bir enum değeri belirli bir özel özellik almak için çalışır:
public static class EnumHelper
{
public static T GetAttribute<T>(this Enum enumValue)
where T : Attribute
{
return enumValue
.GetType()
.GetTypeInfo()
.GetDeclaredField(enumValue.ToString())
.GetCustomAttribute<T>();
}
}
Lütfen "WinRT C#:" ile başlıkları yazmayın ve böyle yapın. Etiketler bunun için var. –
Bu mümkün değil. Type.GetMember hala .Net 4.5'de mevcut! – logicnp
@logicnp: WinRT API, tam .NET API'sinin bir alt kümesidir. –