【发布时间】:2010-08-06 09:13:02
【问题描述】:
这可能看起来有点颠倒,但我想做的是通过它的描述属性从枚举中获取一个枚举值。
所以,如果我有一个如下声明的枚举:
enum Testing
{
[Description("David Gouge")]
Dave = 1,
[Description("Peter Gouge")]
Pete = 2,
[Description("Marie Gouge")]
Ree = 3
}
我希望能够通过提供字符串“Peter Gouge”来取回 2。
作为起点,我可以遍历枚举字段并获取具有正确属性的字段:
string descriptionToMatch = "Peter Gouge";
FieldInfo[] fields = typeof(Testing).GetFields();
foreach (FieldInfo field in fields)
{
if (field.GetCustomAttributes(typeof(DescriptionAttribute), false).Count() > 0)
{
if (((DescriptionAttribute)field.GetCustomAttributes(typeof(DescriptionAttribute), false)[0]).Description == descriptionToMatch)
{
}
}
}
但是我不知道该怎么做。也不确定这是否是首先要走的路。
【问题讨论】:
标签: c# reflection