我使用反编译器从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中。
答案 0 :(得分:2)
原因在于你得到的错误。
System.ComponentModel.DisplayNameAttribute
已归因于System.AttributeUsageAttribute
,其限制用法仅适用于类,方法,属性或事件。枚举被排除在外。它看起来像这样:
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method|AttributeTargets.Property|AttributeTargets.Event)]
也许您可以编写自己的属性?