マネージ コードの "マネージ推奨規則" 規則セット

潜在的なセキュリティ ホール、アプリケーション クラッシュ、そのほかの重要なロジックやデザイン エラーなど、マネージ コードに含まれる最も重要な問題に注目するために推奨規則 " 規則セットを Microsoft のマネージを使用できます。プロジェクトにカスタムの規則セットを作成する場合は、必ずこの規則セットを含めることを推奨します。

規則

Description

CA1001

破棄可能なフィールドを所有する型は、破棄可能でなければなりません

CA1009

イベント ハンドラーを正しく宣言します

CA1016

アセンブリに AssemblyVersionAttribute を設定します

CA1033

インターフェイス メソッドは、子型によって呼び出し可能でなければなりません

CA1049

ネイティブ リソースを所有する型は、破棄可能でなければなりません

CA1060

P/Invoke を NativeMethods クラスに移動します

CA1061

基本クラス メソッドを非表示にしません

CA1063

IDisposable を正しく実装します

CA1065

予期しない場所に例外を発生させません

CA1301

重複するアクセラレータを使用しません

CA1400

P/Invoke エントリ ポイントは存在しなければなりません

CA1401

P/Invoke は参照可能であることはできません

CA1403

Auto 配置の型を COM 参照可能にすることはできません

CA1404

P/Invoke の直後に GetLastError を呼び出します

CA1405

COM 参照可能な型の基本型は COM 参照可能でなければなりません

CA1410

COM 登録メソッドは一致しなければなりません

CA1415

P/Invoke を正しく宣言します

CA1821

空のファイナライザーを削除します

CA1900

値型フィールドはポータブルでなければなりません

CA1901

P/Invoke 宣言はポータブルでなければなりません

CA2002

弱い ID を伴うオブジェクト上でロックしません

CA2100

SQL クエリのセキュリティ脆弱性を確認

CA2101

P/Invoke 文字列引数に対してマーシャリングを指定します

CA2108

値型での宣言セキュリティを確認します

CA2111

ポインターは参照可能にすることはできません

CA2112

セキュリティで保護された型はフィールドを公開してはなりません

CA2114

メソッド セキュリティは型のスーパーセットでなければなりません

CA2116

APTCA メソッドは APTCA メソッドのみを呼び出すことができます

CA2117

APTCA 型は APTCA 基本型のみを拡張することができます

CA2122

リンク要求を含むメソッドを間接的に公開しません

CA2123

オーバーライドのリンク要求はベースと同一でなければなりません

CA2124

脆弱性のある finally 句を外側の try でラップします

CA2126

型のリンク要求には継承要求が必要です

CA2131

セキュリティ上重要な型は型等価性に参加してはならない

CA2132

既定のコンストラクターは、基本型の既定コンストラクターと同程度以上、重要であることが必要

CA2133

デリゲートは透過性の整合がとれたメソッドにバインドする必要がある

CA2134

メソッドは、基本メソッドをオーバーライドしている場合、透過性の整合性を保つ必要がある

CA2137

透過的メソッドは、検証可能な IL のみを含まなければならない

CA2138

透過的メソッドは、SuppressUnmanagedCodeSecurity 属性を持つメソッドを呼び出してはならない

CA2140

透過的コードは、セキュリティ上重要な項目を参照してはならない

CA2141

透過的メソッドは、LinkDemand を満たしてはならない

CA2146

型は、基本型およびインターフェイスと同程度以上、重要でなければならない

CA2147

透過的メソッドはアサートしますセキュリティを使用しない可能性があります。

CA2149

透過的メソッドは、ネイティブ コード内に呼び出しを行ってはならない

CA2200

スタック詳細を保持するために再度スローします。

CA2202

オブジェクトを複数回破棄しない

CA2207

値型のスタティック フィールドのインラインを初期化します

CA2212

サービス コンポーネントを WebMethod に設定しません

CA2213

破棄可能なフィールドは破棄されなければなりません

CA2214

コンストラクターのオーバーライド可能なメソッドを呼び出しません

CA2216

破棄可能な型はファイナライザーを宣言しなければなりません

CA2220

ファイナライザーは基本クラスのファイナライザーを呼び出さなければなりません

CA2229

シリアル化コンストラクターを実装します

CA2231

ValueType.Equals のオーバーライドで、演算子 equals をオーバーロードします。

CA2232

Windows フォームのエントリ ポイントを STAThread に設定します

CA2235

すべてのシリアル化不可能なフィールドを設定します

CA2236

ISerializable 型で基本クラス メソッドを呼び出します

CA2237

ISerializable 型を SerializableAttribute に設定します

CA2238

シリアル化メソッドを正しく実装します

CA2240

ISerializable を正しく実装します

CA2241

書式設定メソッドに正しい引数を提供

CA2242

NaN に対して正しくテストします