【发布时间】:2011-05-21 01:03:15
【问题描述】:
我有一个通用扩展方法,它从Enum 获取Description 属性:
enum Animal
{
[Description("")]
NotSet = 0,
[Description("Giant Panda")]
GiantPanda = 1,
[Description("Lesser Spotted Anteater")]
LesserSpottedAnteater = 2
}
public static string GetDescription(this Enum value)
{
FieldInfo field = value.GetType().GetField(value.ToString());
DescriptionAttribute attribute
= Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute))
as DescriptionAttribute;
return attribute == null ? value.ToString() : attribute.Description;
}
所以我可以...
string myAnimal = Animal.GiantPanda.GetDescription(); // = "Giant Panda"
现在,我正在尝试在另一个方向上计算出等效的功能,例如...
Animal a = (Animal)Enum.GetValueFromDescription("Giant Panda", typeof(Animal));
【问题讨论】:
标签: c# .net attributes enums