次の方法で共有


チュートリアル : マネージ コードの分析によるコード障害の検出

更新 : 2007 年 11 月

このチュートリアルでは、コード分析ツールを使ってマネージ プロジェクトを分析し、コード障害を検出する方法について説明します。

このチュートリアルでは、コード分析を通じて、.NET マネージ コード アセンブリを分析し、これらのアセンブリが Microsoft .NET Framework デザイン ガイドラインに準拠しているかどうかを確認するプロセスを、順をおって説明します。

このチュートリアルでは、次のことを行います。

  • コード障害の警告を分析および修正する。

前提条件

マネージ プロジェクトのコード障害を分析するには

  1. Development Edition で、ManagedDemo ソリューションを開きます。

  2. ソリューション エクスプローラで ManagedDemo プロジェクトを選択します。

  3. [プロジェクト] メニューの [プロパティ] をクリックします。

    ManagedDemo プロパティ ページが表示されます。

  4. [コード分析]をクリックします。

  5. [コード分析の有効化 (CODE_ANALYSIS 定数を定義)] を選択します。

  6. [ファイル] メニューの [選択されたファイルを上書き保存] をクリックし、ManagedDemo のプロパティ ページを閉じます。

  7. [ビルド] メニューの [ManagedDemo のビルド] をクリックします。

    [エラー一覧] ウィンドウおよび [出力] ウィンドウに、ManagedDemo プロジェクトのビルド警告が表示されます。

コード分析で指摘された規則違反を修正するには

  1. [表示] メニューの [エラー一覧] をクリックします。

    開発者が設定しているプロファイルによっては、[表示] メニューの [その他のウィンドウ] をポイントしてから、[エラー一覧] をクリックしなければならない場合もあります。

  2. ソリューション エクスプローラで、[すべてのファイルを表示] をクリックします。

  3. 次に、[構成] ノードを展開し、AssemblyInfo.cs ファイルを開きます。

  4. 次の表に従って警告を修正します。

警告

警告を修正するには

アセンブリを CLSCompliantAttribute でマークします: Microsoft.Design: 'ManagedDemo' は、CLSCompliantAttribute を伴って設定され、その値が true でなければなりません。

  1. usingSystem; というコードを AssemblyInfo.cs ファイルに追加します。

  2. 次に、[assembly: CLSCompliant(true)] というコードを AssemblyInfo.cs ファイルの最後に追加します。

  3. プロジェクトを再ビルドします。

コンパイラの警告 (レベル 1) CS3008

  1. フィールド名 _item を ItemCount に変更します。

  2. public static int item { get { return _item; } } を、戻り値が ItemCount となるように修正します。

  3. プロジェクトを再ビルドします。

ISerializable 型を SerializableAttribute とマークします: Microsoft.Usage: [Serializable] 属性を型 'demo' に追加します。この型が ISerializable を実装するためです。

  1. クラス demo に [Serializable ()] 属性を追加します。

  2. プロジェクトを再ビルドします。

標準の例外コンストラクタを実装します: Microsoft.Design: 次のコンストラクタをこのクラスに追加します: public demo(String)

  • コンストラクタ public demo (String s) : base(s) { } をクラス demo に追加します。

標準の例外コンストラクタを実装します: Microsoft.Design: 次のコンストラクタをこのクラスに追加します: public demo(String, Exception)

  • コンストラクタ public demo (String s, Exception e) : base(s, e) { } をクラス demo に追加します。

標準の例外コンストラクタを実装します: Microsoft.Design: 次のコンストラクタをこのクラスに追加します: protected demo(SerializationInfo, StreamingContext)

  1. using System.Runtime.Serialization; というコードを Class1.cs ファイルの先頭に追加します。

  2. 次に、コンストラクタ protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo. を追加します。

  3. プロジェクトを再ビルドします。

標準の例外コンストラクタを実装します: Microsoft.Design: 次のコンストラクタをこのクラスに追加します: public demo()

  1. コンストラクタ public demo () : base() { } をクラス demo に追加します。

  2. プロジェクトを再ビルドします。

ID に正しいサフィックスを含めてください: Microsoft.Naming: 'testCode.demo' の名前が 'Exception' で終わるように変更します。

  • クラスとそのコンストラクタの名前を DemoException に変更します。

識別子の大文字/小文字を正しく使い分ける必要があります: Microsoft.Naming: 名前空間の名前 'testCode' の大文字と小文字の指定を訂正してください。

  • 名前空間 testCode の大文字と小文字の規則を TestCode のように変更します。

識別子の大文字/小文字を正しく使い分ける必要があります: Microsoft.Naming: メンバ名 'item' の大文字と小文字の指定を訂正してください。

  • メンバ名を Item に変更します。

アセンブリに有効な厳密名がありません: 'ManagedDemo' を厳密な名前キーで署名します。

  1. [プロジェクト] メニューの [ManagedDemo のプロパティ] をクリックします。

    プロジェクトのプロパティが表示されます。

  2. [署名] をクリックします。

  3. [アセンブリの署名] チェック ボックスをオンにします。

  4. [厳密な名前のキー ファイルを選択してください] ボックスの一覧の [<新規作成...>] を選択します。

    [厳密な名前キーの作成] ダイアログ ボックスが表示されます。

  5. [キー ファイル] に「TestKey」と入力します。

  6. パスワードを入力して、[OK] をクリックします。

  7. [ファイル] メニューの [選択されたファイルを上書き保存] をクリックし、プロパティ ページを閉じます。

  8. プロジェクトを再ビルドします。

コード分析で生成された警告の除外

コード障害の警告を除外するには

  1. [エラー一覧] で残りの警告を選択して右クリックし、[メッセージの非表示] を選択します。

  2. プロジェクトを再ビルドします。

    警告やエラーを出さずにプロジェクトがビルドされます。