关于c#:使用属性进行枚举说明


Use Attribute for Enum description

本问题已经有最佳答案,请猛点这里访问。

我有一个枚举,想要为每个值添加一个描述。我读了一些关于属性的东西,可以解决我的问题。我尝试从msdn实现解决方案,但没有成功。如果IAM使用一个类,但不使用枚举值,则它可以工作。

有没有可能有人会贴出它的工作原理?

当做

这里有一个链接到msdn解决方案。这就是我要做的。唯一的区别是我想使用枚举值。

http://msdn.microsoft.com/de de/library/aa288454(v=vs.71).aspx

例子:

1
2
3
4
5
6
7
public enum Color
{
  [Description("This is red")]
  Red,
  [Description("This is blue")]
  Blue
}

如何获取描述,以及如何实现描述类/方法?


像这样的东西

1
2
3
4
5
6
7
8
9
10
using System.ComponentModel;

public enum MyColors{
   [Description("Editor Color")]
   White,
   [Description("Errors Color")]
   Red,
   [Description("Comments Color")]
   Green
}


尝试此枚举

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public enum MyColors{
[Description("Editor Color")]
White,
[Description("Errors Color")]
Red,
[Description("Comments Color")]
Green
}


var type = typeof(MyColors);
var memInfo = type.GetMember(MyColors.White.ToString());
var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute),
false);
var description = ((DescriptionAttribute)attributes[0]).Description;