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.

グーグルで検索したところ、人々が列挙型で問題なくこれを行っているように見える多くのスレッドが見つかりました。何か不足していますか?Visual Studio でエラーを表示できResolveません。オプションも表示されません (ただし、Resharper をインストールしたばかりで、まだ慣れていないためでしょうか?)

編集: DevExpress にはCustomColumnDisplayText必要に応じて値を変更できるイベントがあることがわかりました。データは GridControl にのみ表示されるため、代わりにそれを使用します。

4

1 に答える 1

2

理由は、取得しているエラーに示されています。

は、使用法をクラス、メソッド、プロパティ、またはイベントにのみ適用されるように制限する にSystem.ComponentModel.DisplayNameAttribute起因しています。System.AttributeUsageAttribute列挙型は除外されます。次のようになります。

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

おそらく、代わりに独自の属性を記述できますか?

于 2013-11-07T18:25:33.340 に答える