2016-09-15 7 views
0

私はHttpPost通信を受け入れるWeb APIプロジェクトを持っています。C#Visual Studio 2013抑制 'クラスはインスタンス化されません'

コントローラのメソッドは、常に1つの検証済みオブジェクトを受け入れます。例えば

:私はNumbersRequest req = new NumbersRequest()を宣言することはありません、彼らは唯一のリクエストオブジェクトとなりますので

public sealed class NumbersRequest 
{ 
    [NumberOne] 
    public string Number1 { get; set; } 

    [NumberTwo] 
    public string Number2 { get; set; } 
} 

、Imは

クラスは

どのようにすることができますをインスタンス化されることはありません取得警告を抑制する? (それはもっと緑色の下線のようです。) たぶん告白のあるもの?

ありがとうございました。

+1

警告を出すのは何ですか?コード分​​析? –

+0

実際にコンパイラの警告ではなく、エラーの近くに表示されます。それは私を盗んだ。それは緑の線でそれを塗る。 –

+0

http://stackoverflow.com/q/17998471/11683はおそらくあなたが望むものではありませんが、オプションである可能性があります。 – GSerg

答えて

3

This looks like a ReSharper warningなどです。これらのことについてReSharperに黙って尋ねることができます。

ReSharperを設定することで、この全体的な不満を解消することができます。これは、問題のsquigglyにAlt + Enterを押し、通常は検査の重大度を設定できる下部メニュー項目を使用するだけです。

これはグローバル設定で保存することができます。これは、今後開くすべてのプロジェクトに影響を与えます。チーム共有設定ファイルに保存することもできます。この1つの解決策にしかカウントされません。

ここで、警告全体をにしたいが、1つまたは複数の特定のタイプ、メソッド、プロパティなどについて不平を言ってもらわないようにするには、ReSharperが提供する属性を使用することができます。

あなたは、あなたのプロジェクトにこれらの属性をもたらすいくつかの方法があります。

  1. は「JetBrainsのReSharperの注釈」
  2. はReSharperのためのオプション]ダイアログボックスを使用し、それができるページを見つけNugetパッケージへの参照を追加します。それらの属性のソースのコピーをクリップボードに取り込み、プロジェクトのファイルに貼り付けます。
  3. したい1つのつか2つの属性を定義し、でも(あなたは、約ReSharperのを指示する必要があります)独自の名前空間

に推奨される方法はnugetパッケージを使用して、オプション1です。

属性を使用できると仮定した場合、PublicAPIAttributeまたはUsedImplicitlyAttributeのいずれかを使用できます。

どちらか一方で十分ですが、異なる意味合いを持つ場合があります。あなたはオブジェクトをクライアントに転送していることにフラグを立てているので、最初にPublicAPIAttributeと一緒に行きます。あなたはPublicAPIAttributeは動作しませんでしたが、UsedImplicitlyAttributeが、その後やったことをコメントで言うので


私は、彼らがは異なる意味を持っていると思います。

+0

一般的なヒントとして、ReSharperを使用していて、製品を最大限に活用したいのであれば、ReSharperに独自のものより多くのことを教えることができる属性を調べるべきです。そこには、実際に*有用な属性がいくつかあります。具体的には、 'NotNullAttribute'と' CanBeNullAttribute'を見て、**すべて**それらに適切なタグをつけてから、ReSharperがあなたのコードに示すすべてのsquiggliesの世話をしてください。あなたは後で私に感謝することができます。コレクションのタグ要素のための 'Item ****'バージョンも同じです。 –

関連する問題