2013-03-18 13 views
15

私はC#プロジェクトでReSharperを使用しています。ただし、特定のリファクタリングアクションを実行すると、アノテーションはコードに追加され続けます。私は「ヌルのパラメータをチェックし、」コンテキストアクションを使用する場合ReSharperで注釈を追加しないでください

例えば、それは[NotNull]を追加します。

// Before context action 
public void Foo(object input) 
{ 
} 

// After context action 
public void Foo([NotNull] object input) 
{ 
    if (input == null) 
    { 
     throw new ArgumentNullException("input"); 
    } 
} 

また、ReSharperのは、私はJetBrainsのアセンブリを参照していないよにもかかわらず、ファイルにusing JetBrains.Annotationsを追加します属性が定義されています。

非常に便利なコンテキストアクションを使用したいと思いますが、コードに外部ア​​ノテーションを導入することはできません。 ReSharperには、デフォルトの注釈名前空間を変更し、注釈属性のソースコードをプロジェクトにコピーするオプションがありますが、これはこのプロジェクトのオプションでもありません。

注釈の追加を完全に停止するようにReSharperに指示する方法はありますか?私はオプションでJetBrains.Annotationsをコード注釈属性を持つ名前空間としてチェックしないようにしましたが、注釈が最初に生成されるかどうかには影響しないようです。

アップデート:私は実際にJetBrains.Annotations.dllを参照されなかったが、私は再実装同じ注釈が同じJetBrains.Annotations名前空間の属性別のDLLを参照しました。そのDLL参照を削除すると、ReSharperは注釈を追加できなくなります。これをオフにするオプションがまだ残っていればうれしいでしょうが、回避策はこの状況に適しています。

+1

NLogが私の問題の原因となったDLLです。私はそれを取り除くことができないので、ReSharperを使わずに暮らすことは本当に生きていないので、私はルートネームスペースに注釈を追加することに頼った。 –

+0

注釈の使用法を強くお勧めします。 –

答えて

6

あなたがJetBrains.Annotations.dllを参照する場合、「ヌルのためのパラメータを確認してください」のデフォルトの動作は、オプション「『NotNullAttribute』で注釈付け」の追加にもかかわらず(NotNull属性を使用するように思われる。

私が知っている唯一の回避策は、JetBrains.Annotations.dllを参照しないことです

アップデート:このにもっと探して

、注釈のDLLが含まれており、「のためのパラメータをチェックしている時に追加され[NotNull]提案/バグがあったようですnull "が要求されました:http://youtrack.jetbrains.com/issue/RSRP-70350他の誰かがこの驚異に遭遇した場合なぜ ...

+1

ありがとう!私はJetBrains.Annotations.dllを参照していませんでしたが、私は同じ名前空間内のすべての同じ属性を再定義した別のDLLを参照していました。これを削除すると、ReSharperは属性の追加を停止します。 –

関連する問題