无法在枚举上设置DisplayName

时间:2013-11-07 18:17:35

标签: c# enums .net-3.5

我使用反编译器从DLL中提取所有代码(SharpSVN - 无法获取源代码),我想修改枚举以给它一个DisplayName。

public enum SvnStatus
{
  Zero,
  None,
  [DisplayName("Not Versioned")]
  NotVersioned,
  //other one-word values that don't need a display name
}

但是这给了我以下错误:

Attribute 'System.ComponentModel.DisplayNameAttribute' is not valid on this declaration type. It is valid on 'Class, Method, Property, Event' declarations only.

用Google搜索并找到许多线程,人们似乎对其枚举没有任何问题。我错过了什么吗?我不能Resolve Visual Studio中的错误,该选项甚至没有出现(但可能是因为我刚刚安装了Resharper而我还不熟悉它?)

编辑:刚刚发现DevExpress有一个CustomColumnDisplayText事件,我可以根据需要更改值,所以我会改用它,因为数据只是显示在GridControl中。

1 个答案:

答案 0 :(得分:2)

原因在于你得到的错误。

System.ComponentModel.DisplayNameAttribute已归因于System.AttributeUsageAttribute,其限制用法仅适用于类,方法,属性或事件。枚举被排除在外。它看起来像这样:

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Event)]

也许您可以编写自己的属性?