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

このチュートリアルでは、Visual Basic を使って簡単なビジュアライザーを作成する方法を説明します。 このチュートリアルで作成するビジュアライザーは、Windows フォーム メッセージ ボックスを使用して文字列の内容を表示します。 この単純な文字列のビジュアライザーは基本的な例で、プロジェクトに合わせて他のデータ型向けのビジュアライザーを作成するときに参考になります。

注意

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

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

クラス ライブラリ プロジェクトの作成と準備

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

  1. 新しいクラス ライブラリ プロジェクトを作成します。

    Esc キーを押してスタート ウィンドウを閉じます。 Ctrl + Q キーを押して検索ボックスを開き、「visual basic」と入力し、 [テンプレート] を選択して、 [Create a new Class Library (.NET Framework)](新しいクラス ライブラリの作成 (.NET Framework)) を選択します。 表示されたダイアログ ボックスで、 [作成] を選択します。

  2. クラス ライブラリの適切な名前 (MyFirstVisualizer など) を入力し、 [作成] または [OK] をクリックします。

    クラス ライブラリを作成したら、Microsoft.VisualStudio.DebuggerVisualizers.DLL への参照を追加することによって、この DLL で定義されているクラスを使用できるようにします。 ただし、最初にプロジェクトにわかりやすい名前を付けます。

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

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

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

    注意

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

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

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

    DLL は、Visual Studio のインストール ディレクトリの <Visual Studio Install Directory>\Common7\IDE\PublicAssemblies サブディレクトリにあります。

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

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

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

デバッガー側のコードの追加

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

DialogDebuggerVisualizer から継承するには

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

    Public Class DebuggerSide
    
  2. 次のようにコードを編集します。

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

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

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

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

    Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider)
    
        End Sub
    

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

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

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

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

    この DLL は、C:\Windows\Microsoft.NET\Framework\v4.0.30319 で見つけることができます。

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

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

    Imports System.Windows.Forms
    

ビジュアライザーのユーザー インターフェイスの作成

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

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

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

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

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

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

必要な属性の追加

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

デバッグ対象側のコードで視覚化する型を追加するには

デバッガー側のコードで DebuggerVisualizerAttribute 属性を使用して、視覚化する型 (オブジェクト ソース) を指定します。 Target プロパティに視覚化する型が設定されます。

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

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

テスト ハーネスの作成

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

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

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

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. [ビルド] メニューの [MyFirstVisualizer のビルド] をクリックします。 プロジェクトが構築されます。 ビルド エラーを修正してから次の作業に進みます。

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

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

  1. ソリューション エクスプローラーでソリューションを右クリックして [追加] を選択し、 [新しいプロジェクト] をクリックします。

    検索ボックスに「visual basic」と入力し、 [テンプレート] を選択して、 [Create a new Console App (.NET Framework)](新しいコンソール アプリの作成 (.NET Framework)) を選択します。 表示されたダイアログ ボックスで、 [作成] を選択します。

  2. クラス ライブラリの適切な名前 (MyTestConsole など) を入力し、 [作成] または [OK] をクリックします。

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

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

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

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

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

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

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

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

テスト ハーネスの終了とビジュアライザーのテスト

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

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

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

  2. Module1.vb の名前を、TestConsole.vb などの適切な名前に変更します。

    Visual Studio によって、新しいファイル名に合わせて TestConsole.vb のクラス宣言が自動的に変更されることに注意してください。

  3. TestConsole. vb で、次の Imports ステートメントを追加します。

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

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

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

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

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

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

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

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

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