Share via


チュートリアル : C# でビジュアライザを記述する

更新 : 2007 年 11 月

このトピックの内容は、次の製品に該当します。

Edition

Visual Basic

C#

C++

Web Developer

Express

トピック該当なし トピック該当 トピック該当なし トピック該当なし

Standard

トピック該当なし トピック該当 トピック該当なし トピック該当なし

Pro/Team

トピック該当なし トピック該当 トピック該当なし トピック該当なし

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

トピックは該当しますが、コマンドは既定では非表示です

既定で非表示のコマンド

このチュートリアルでは、C# を使用して簡単なビジュアライザを作成する方法を説明します。このチュートリアルで作成するビジュアライザは、Windows フォーム メッセージ ボックスを使用して文字列の内容を表示します。この簡単な文字列ビジュアライザは、それ自体ではそれほど役に立ちませんが、他のデータ型を表示する、より役に立つビジュアライザを作成するために必要な基本手順として使用できます。

ms164759.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、ヘルプの記載と異なるダイアログ ボックスやメニュー コマンドが表示される場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

ビジュアライザ コードは、デバッガによって読み取られる DLL に配置する必要があります。このため、最初の手順として、DLL のクラス ライブラリ プロジェクトを作成します。

クラス ライブラリ プロジェクトを作成するには

  1. [ファイル] メニューの [新規作成] をポイントし、[新しいプロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [プロジェクトの種類] で、[Visual C#] をクリックします。

  3. [テンプレート] ボックスで、[クラス ライブラリ] をクリックします。

  4. [プロジェクト名] ボックスに、クラス ライブラリの名前 (MyFirstVisualizer など) を入力します。

  5. [OK] をクリックします。

クラス ライブラリを作成したら、Microsoft.VisualStudio.DebuggerVisualizers.DLL への参照を追加し、この DLL で定義されているクラスを使用できるようにします。ただし、参照を追加する前に、クラス名をわかりやすい名前に変更する必要があります。

Class1.cs の名前を変更し Microsoft.VisualStudio.DebuggerVisualizers を追加するには

  1. ソリューション エクスプローラで、Class1.cs を右クリックし、ショートカット メニューの [名前の変更] をクリックします。

  2. Class1.cs の名前を、DebuggerSide.cs などのわかりやすい名前に変更します。

    ms164759.alert_note(ja-jp,VS.90).gifメモ :

    Visual Studio によって、新しいファイル名に合わせて DebuggerSide.cs のクラス宣言が自動的に変更されます。

  3. ソリューション エクスプローラで、[参照] を右クリックし、ショートカット メニューの [参照の追加] をクリックします。

  4. [参照の追加] ダイアログ ボックスの [.NET] タブで、Microsoft.VisualStudio.DebuggerVisualizers.DLL をクリックします。

  5. [OK] をクリックします。

  6. DebuggerSide.cs の using ステートメントに次のステートメントを追加します。

    using Microsoft.VisualStudio.DebuggerVisualizers;
    

これで、デバッガ側のコードを作成する準備が整いました。これは、視覚化を要する情報を表示するためにデバッガ内で実行されるコードです。最初に、DebuggerSide オブジェクトの宣言を変更して、DialogDebuggerVisualizer 基本クラスを継承するようにする必要があります。

DialogDebuggerVisualizer から継承するには

  1. DebuggerSide.cs で、次のコード行に移動します。

    public class DebuggerSide
    
  2. コードを次のように変更します。

    public class DebuggerSide : DialogDebuggerVisualizer
    

DialogDebuggerVisualizer には、オーバーライドする必要がある抽象メソッドが 1 つ (Show) があります。

DialogDebuggerVisualizer.Show メソッドをオーバーライドするには

  • public class DebuggerSide に、次のメソッドを追加します。

    override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
    {
    }
    

Show メソッドには、ビジュアライザのダイアログ ボックス (または他のユーザー インターフェイス) を実際に作成し、デバッガからビジュアライザに渡された情報を表示するコードが格納されます。したがって、このダイアログ ボックスを作成し、情報を表示するコードを追加する必要があります。このチュートリアルでは、Windows フォーム メッセージ ボックスを使用します。最初に、System.Windows.Forms の参照と using ステートメントを追加する必要があります。

System.Windows.Forms を追加するには

  1. ソリューション エクスプローラで、[参照] を右クリックし、ショートカット メニューの [参照の追加] をクリックします。

  2. [参照の追加] ダイアログ ボックスの [.NET] タブで、System.Windows.Forms.DLL をクリックします。

  3. [OK] をクリックします。

  4. DebuggerSide.cs の using ステートメントに次のステートメントを追加します。

    using System.Windows.Forms;
    

次に、ビジュアライザのインターフェイスを作成し、表示するコードを追加します。これは、初めて作成するビジュアライザであるため、ユーザー インターフェイスを簡素にし、メッセージ ボックスを使用します。

ビジュアライザの出力をダイアログ ボックスに表示するには

  1. Show メソッドに次のコード行を追加します。

    MessageBox.Show(objectProvider.GetObject().ToString());
    

    このコード例には、エラー処理が含まれていません。実際に使用するビジュアライザや、どのようなアプリケーションにも、エラー処理を追加する必要があります。

  2. [ビルド] メニューの [MyFirstVisualizer のビルド] をクリックします。プロジェクトが構築されます。ビルド エラーを修正してから次の作業に進みます。

これで、デバッガ側のコードは終わりです。ただし、もう 1 つ追加するものがあります。それは、ビジュアライザを構成するクラスのコレクションをデバッグ対象側に通知する属性です。

デバッグ対象側のコードを追加するには

  1. DebuggerSide.cs の using ステートメントと namespace MyFirstVisualizer の間に次の属性コードを追加します。

    [assembly:System.Diagnostics.DebuggerVisualizer(
    typeof(MyFirstVisualizer.DebuggerSide),
    typeof(VisualizerObjectSource),
    Target  = typeof(System.String),
    Description  = "My First Visualizer")]
    
  2. [ビルド] メニューの [MyFirstVisualizer のビルド] をクリックします。プロジェクトが構築されます。ビルド エラーを修正してから次の作業に進みます。

これで、最初のビジュアライザが完成しました。手順どおりに作業を行ってきた場合は、ビジュアライザを構築し、Visual Studio にインストールできます。ただし、ビジュアライザを Visual Studio にインストールする前にテストを行い、ビジュアライザが正しく動作することを確認する必要があります。そこで、Visual Studio にインストールしないでビジュアライザを実行する、テスト ハーネスを作成します。

ビジュアライザを表示するテスト メソッドを追加するには

  1. 次のメソッドを public DebuggerSide クラスに追加します。

    public static void TestShowVisualizer(object objectToVisualize)
    {
       VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide));
       visualizerHost.ShowVisualizer();
    }
    
  2. [ビルド] メニューの [MyFirstVisualizer のビルド] をクリックします。プロジェクトが構築されます。ビルド エラーを修正してから次の作業に進みます。

次に、ビジュアライザ DLL を呼び出す実行可能プロジェクトを作成する必要があります。わかりやすくするために、コンソール アプリケーション プロジェクトを使用します。

ソリューションにコンソール アプリケーション プロジェクトを追加するには

  1. [ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。

  2. [新しいプロジェクト] ダイアログ ボックスの [テンプレート] ボックスで、[コンソール アプリケーション] をクリックします。

  3. [プロジェクト名] ボックスに、コンソール アプリケーション用のわかりやすい名前 (MyTestConsole など) を入力します。

  4. [OK] をクリックします。

次に、必要な参照を追加して、MyTestConsole が MyFirstVisualizer を呼び出すことができるようにします。

必要な参照を MyTestConsole に追加するには

  1. ソリューション エクスプローラで、[MyTestConsole] を右クリックし、ショートカット メニューの [参照の追加] をクリックします。

  2. [参照の追加] ダイアログ ボックスの [.NET] タブで、Microsoft.VisualStudio.DebuggerVisualizers.DLL をクリックします。

  3. [OK] をクリックします。

  4. MyTestConsole を右クリックし、再度 [参照の追加] をクリックします。

  5. [参照の追加] ダイアログ ボックスの [プロジェクト] タブをクリックし、MyFirstVisualizer をクリックします。

  6. [OK] をクリックします。

次に、コードを追加してテスト ハーネスを完成させます。

コードを MyTestConsole に追加するには

  1. ソリューション エクスプローラで、Program.cs を右クリックし、ショートカット メニューの [名前の変更] をクリックします。

  2. Program.cs の名前を、TestConsole.cs などの、よりわかりやすい名前に変更します。

    メモ   Visual Studio によって、新しいファイル名に合わせて TestConsole.cs のクラス宣言が自動的に変更されます。

  3. TestConsole.cs の using ステートメントに次のコードを追加します。

    using MyFirstVisualizer;
    
  4. Main メソッドに、次のコードを追加します。

    String myString = "Hello, World";
    DebuggerSide.TestShowVisualizer(myString);
    

これで、作成したビジュアライザをテストする準備が整いました。

ビジュアライザをテストするには

  1. ソリューション エクスプローラで [MyTestConsole] を右クリックし、ショートカット メニューの [スタートアップ プロジェクトに設定] をクリックします。

  2. [デバッグ] メニューの [開始] をクリックします。

    コンソール アプリケーションが起動してビジュアライザが表示され、"Hello, World" という文字列が表示されます。

テストは成功です。これで、最初のビジュアライザの作成とテストが完了しました。

作成したビジュアライザをテスト ハーネスから呼び出すのではなく、Visual Studio で使用する場合は、ビジュアライザをインストールする必要があります。詳細については、「方法 : ビジュアライザをインストールする」を参照してください。

ビジュアライザ項目テンプレートの使用

このチュートリアルのこれまでの部分では、ビジュアライザを手動で作成する方法について説明し、これを演習形式で実行しました。簡単なビジュアライザがどのように動作するかを理解したことを踏まえて、ここでは、ビジュアライザ項目テンプレートを使用して、ビジュアライザをより簡単に作成する方法を紹介します。

最初に、新しいクラス ライブラリ プロジェクトを作成する必要があります。

新しいクラス ライブラリを作成するには

  1. [ファイル] メニューの [追加] をポイントし、[新しいプロジェクト] をクリックします。

  2. [新しいプロジェクトの追加] ダイアログ ボックスの [プロジェクトの種類] で、[Visual C#] をクリックします。

  3. [テンプレート] ボックスで、[クラス ライブラリ] をクリックします。

  4. [プロジェクト名] ボックスに、クラス ライブラリの名前 (MySecondVisualizer など) を入力します。

  5. [OK] をクリックします。

これで、ビジュアライザ項目を追加できます。

ビジュアライザ項目を追加するには

  1. ソリューション エクスプローラで、[MySecondVisualizer] を右クリックします。

  2. ショートカット メニューの [追加] をクリックし、さらに [新しい項目] をクリックします。

  3. [新しい項目の追加] ダイアログ ボックスの [テンプレート] の下の [Visual Studio にインストールされたテンプレート] で、[デバッガ ビジュアライザ] をクリックします。

  4. [ファイル名] ボックスに、名前 (SecondVisualizer.cs など) を入力します。

  5. [追加] をクリックします。

これで作業は完了です。SecondVisualizer.cs ファイルを参照し、テンプレートによって追加されたコードを確認します。さらにコードを実行してみてください。以上で基礎的な項目を習得しました。これで、より複雑で有効な独自のビジュアライザを作成できます。

参照

処理手順

方法 : ビジュアライザをインストールする

概念

ビジュアライザのアーキテクチャ

その他の技術情報

ビジュアライザ