Share via


方法 : ビジュアライザを記述する

更新 : 2007 年 11 月

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

Edition

Visual Basic

C#

C++

Web Developer

Express

トピック該当 トピック該当

マネージのみ

トピック該当

Standard

トピック該当 トピック該当

マネージのみ

トピック該当

Pro/Team

トピック該当 トピック該当

マネージのみ

トピック該当

表の凡例 :

トピック該当

対象

トピック該当なし

該当なし

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

既定で非表示のコマンド

Object および Array を除く任意のマネージ クラスのオブジェクトのカスタム ビジュアライザを記述できます。

デバッガ ビジュアライザのアーキテクチャには、次の 2 つの部分があります。

  • デバッガ側 - Visual Studio デバッガ内で動作します。デバッガ側のコードは、ビジュアライザのユーザー インターフェイスを作成し、表示します。

  • デバッグ対象側 - Visual Studio がデバッグしているプロセス (デバッグ対象) 内で動作します。

視覚化するデータ オブジェクト (String オブジェクトなど) は、デバッグ対象プロセスに存在します。このためデバッグ対象側では、そのデータ オブジェクトをデバッガ側に送る必要があります。これによって、デバッガ側では、作成したユーザー インターフェイスを使ってデータ オブジェクトを表示できるようになります。

デバッガ側は、IVisualizerObjectProvider インターフェイスを実装するオブジェクト プロバイダから、視覚化するデータ オブジェクトを受け取ります。デバッグ対象側は、VisualizerObjectSource から派生するオブジェクト ソースを介してデータ オブジェクトを送ります。オブジェクト プロバイダは、オブジェクト ソースにデータを戻すこともできます。このため、データの表示だけでなく編集もできるビジュアライザを記述できます。オブジェクト プロバイダは、式エバリュエータと通信することでオブジェクト ソースと通信するようにオーバーライドできます。

デバッグ対象側とデバッガ側は、Stream を介して相互に通信します。データ オブジェクトを Stream にシリアル化し、Stream をデータ オブジェクトに逆シリアル化するメソッドが用意されています。

デバッグ対象側のコードは、DebuggerVisualizer 属性 (DebuggerVisualizerAttribute) で指定します。

デバッガ側でビジュアライザ ユーザー インターフェイスを作成するには、DialogDebuggerVisualizer を継承するクラスを作成し、DialogDebuggerVisualizer.Show メソッドをオーバーライドしてインターフェイスを表示する必要があります。

IDialogVisualizerService を使用すると、Windows フォーム、ダイアログ、およびコントロールをビジュアライザによって表示できます。

ジェネリック型のサポートは制限されています。ジェネリック型がオープン型の場合にのみ、そのジェネリック型のビジュアライザを記述できます。この制限は、DebuggerTypeProxy 属性を使用する場合の制限と同じです。詳細については、「DebuggerTypeProxy 属性の使用」を参照してください。

カスタムのビジュアライザでは、セキュリティについての配慮が必要な場合があります。ビジュアライザのセキュリティに関する考慮事項 を参照してください。

以下の手順は、ビジュアライザの作成に必要な作業の概要を示したものです。詳細については、「チュートリアル : C# でビジュアライザを記述する」を参照してください。

デバッガ側を作成するには

  1. IVisualizerObjectProvider メソッドを使用して、視覚化するオブジェクトをデバッガ側で取得します。

  2. DialogDebuggerVisualizer を継承するクラスを作成します。

  3. DialogDebuggerVisualizer.Show メソッドをオーバーライドしてインターフェイスを表示します。IDialogVisualizerService メソッドを使用して、Windows フォーム、ダイアログ、およびコントロールをインターフェイスの一部として表示します。

  4. DebuggerVisualizerAttribute をビジュアライザ (DialogDebuggerVisualizer) に適用します。

デバッグ対象側を作成するには

  1. DebuggerVisualizerAttribute をビジュアライザ (DialogDebuggerVisualizer) とオブジェクト ソース (VisualizerObjectSource) に適用します。オブジェクト ソースを省略すると、既定のオブジェクト ソースが使用されます。

  2. ビジュアライザでデータ オブジェクトを表示するだけでなく、編集できるようにする場合は、VisualizerObjectSource の TransferData メソッドまたは CreateReplacementObject メソッドをオーバーライドする必要があります。

参照

処理手順

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

方法 : ビジュアライザをテストおよびデバッグする

概念

ビジュアライザのセキュリティに関する考慮事項

その他の技術情報

ビジュアライザ