私は WPF アプリケーションのいくつかのソース コードを調べており、いたるところで SupressMessage 属性を見てきました。属性の説明は、今のところ非常にぼやけています。「特定の静的分析ツールのルール違反のレポートを抑制し、1 つのコード アーティファクトで複数の抑制を許可します。」この属性は何のためにあり、実際に使用されますか?
1 に答える
プロジェクトにコード分析を適用しているときに、警告が誤検知であるか、コードの特定の部分がコード分析規則に違反しても問題ないという理由で、無視したい警告が表示されることがあります。
これは、 SuppressMessageAttributeを使用して行います。現在、コード分析は Visual Studio の "上位" SKU に組み込まれていますが、以前は分析を実行するためにFxCopというツールを使用する必要がありました。
一般に、警告を無視するには 3 つのオプションがあります。
コードの分析に使用しているルールセットからルールを削除できます。ルールを本当に気にしない場合にのみ、これを行う必要があります。
GlobalSuppressions.cs
を使用して通常名前が付けられるプロジェクト全体の抑制ファイルで警告を抑制することができSuppressMessageAttribute
ます これにより、すべての抑制を 1 つのファイルに保持できますが、特定の抑制をコードの一部に関連付けるのはやや難しくなります。SuppressMessageAttribute
. _ これにより、コードと抑制の間に明確なリンクが作成されますが、コードに余分な情報が散らばっています。一部の警告は、特定のコードに関連付けられていないため、グローバル抑制ファイルでのみ抑制できることに注意してください。
最後の 2 つのオプションは、コード分析の警告で[アクション] ドロップダウンをクリックすると、Visual Studio で直接使用できます。を使用して警告を無視する場合SuppressMessageAttribute
は、 に値を指定できますJustification
。そうすることで、後で警告が抑制された理由を理解することができます。
コードに特殊な単語や略語が含まれているためにスペルに関する警告が表示された場合は、おそらく警告を抑制せず、代わりにプロジェクト用のカスタム コード分析辞書を作成する必要があります。
コードにコード分析を使用すると、コードの品質が向上するだけでなく、その過程でいくつかのことを学ぶこともできます。