0

我使用反编译器从 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.

谷歌搜索并发现了许多线程,人们似乎对他们的枚举没有问题。我错过了什么吗?我不能Resolve在 Visual Studio 中出现错误,甚至没有显示该选项(但这可能是因为我刚刚安装了 Resharper 并且还不熟悉它?)

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

4

1 回答 1

2

原因在您收到的错误中给出。

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

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

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

于 2013-11-07T18:25:33.340 回答