【发布时间】:2010-12-20 10:33:15
【问题描述】:
我想知道是否可以获得enum 值的属性而不是enum 本身的属性?例如,假设我有以下enum:
using System.ComponentModel; // for DescriptionAttribute
enum FunkyAttributesEnum
{
[Description("Name With Spaces1")]
NameWithoutSpaces1,
[Description("Name With Spaces2")]
NameWithoutSpaces2
}
我想要的是给定枚举类型,生成 2 元组的枚举字符串值及其描述。
价值很简单:
Array values = System.Enum.GetValues(typeof(FunkyAttributesEnum));
foreach (int value in values)
Tuple.Value = Enum.GetName(typeof(FunkyAttributesEnum), value);
但是我如何获取描述属性的值来填充Tuple.Desc?如果属性属于enum本身,我可以想到怎么做,但是我不知道如何从enum的值中获取它。
【问题讨论】:
-
描述所需的命名空间是 System.ComponentModel
-
你也可以不使用 System.ComponentModel 而只使用你自己的属性类型;
DescriptionAttribute真的没有什么特别之处。
标签: c# reflection enums .net-attributes