VisualizerObjectSource クラス

定義

視覚化するオブジェクトへのアクセスを提供します。
カスタム機能を提供するには、このクラスをサブクラス化します。

public ref class VisualizerObjectSource
[Windows::Foundation::Metadata::WebHostHidden]
class VisualizerObjectSource
public class VisualizerObjectSource
type VisualizerObjectSource = class
Public Class VisualizerObjectSource
継承
VisualizerObjectSource

[assembly: System.Diagnostics.DebuggerVisualizer(  
   typeof(MyFirstVisualizer.DebuggerSide),  
   // The object source is specified on the next line <<<<<  
   typeof(VisualizerObjectSource),  
   Target = typeof(System.String),  
   Description = "My First Visualizer")]  

注釈

ビジュアライザーは、Visual Studio デバッガーが特定のデータ型のオブジェクトを意味のある方法で表示 (視覚化) するために使用する小さなプログラムです。 オブジェクトを視覚化するために、ビジュアライザーはデバッガー プロセス ( デバッガー側) で実行されるコードと、デバッグ中のプロセス ( デバッグ対象側) のコードを使用します。

デバッガー側とデバッグ対象側は、VisualizerObjectSource と IVisualizerObjectProviderを使用して相互に通信します。

デバッグ対象側では、 を DebuggerVisualizerAttribute 使用してデバッガー側の VisualizerObjectSource オブジェクトを指定します。 デバッガー側は、 インターフェイスを介して IVisualizerObjectProvider 間接的にアクセスできます。

コンストラクター

VisualizerObjectSource()

視覚化するオブジェクトへのアクセスを提供します。
カスタム機能を提供するには、このクラスをサブクラス化します。

プロパティ

IsBinaryFormatterSupported

ビジュアライザーがホストされているデバッグ対象プロセスで Binary Formatter クラスがサポートされている場合は true を返します。 そうでない場合は、このクラスから派生したクラスは、JSON を介してオブジェクトをシリアル化する必要があります。

SelectedFormatterPolicy

情報をシリアル化または逆シリアル化するときにこのクラスが使用する形式ポリシー。 ただし、選択した形式ポリシーがサポートされていないシナリオでは、デバッガーによってオーバーライドできます。

メソッド

CreateReplacementObject(Object, Stream)

シリアル化されたデータに基づいて渡されたオブジェクトの置換オブジェクトを作成して返します。

Deserialize(Stream)
古い.

シリアル化コードの記述を容易にする古いビジュアライザーで使用されるレガシ ヘルパー メソッド。 既定のバイナリ シリアル化を使用して、ストリームから指定されたオブジェクトを読み取ります。 ただし、その使用に関するセキュリティの脆弱性により、使用されなくなり、ASP.NET Core 5.0 などの新しいバージョンの .NET で スローされます。

バイナリ シリアル化をサポートするターゲット アプリで呼び出された場合、 メソッドが終了した後、ストリーム読み取りポインターは オブジェクトのバイトを超えて拡張されます

DeserializeFromJson(Stream, Type, Object)

Newtonsoft.Json ライブラリを使用して、JSON 形式のデータを指定されたストリームから特定の型のオブジェクトに逆シリアル化します。

DeserializeFromJson<T>(Stream, Object)

Newtonsoft.Json ライブラリを使用して、JSON 形式のデータを指定されたストリームから特定の型のオブジェクトに逆シリアル化します。

GetData(Object, Stream)

データの BLOB を取得します。 オブジェクトからメモリストリームにデータを書き込みます。

GetDeserializableObject(Stream)

ターゲット アプリがバイナリ シリアル化をサポートしていない可能性がある場合に、逆シリアル化可能なオブジェクトを取得するために使用できるヘルパー メソッド。 このような場合、基になる形式は JSON を使用してシリアル化する必要があるため、呼び出し元は個々のプロパティに対してクエリを実行して、逆シリアル化するオブジェクトの型を決定できます。

Serialize(Stream, Object)

指定したオブジェクトをストリームにシリアル化します。

既定では、オブジェクトは を介 BinaryFormatterしたバイナリ シリアル化を使用してシリアル化されます。 ただし、ターゲット アプリでバイナリ シリアル化がサポートされていない場合 (ASP.NET Core 5.0 以降のアプリケーションの場合と同様)、メソッドは使用可能な JSON シリアル化テクノロジを使用してオブジェクトをシリアル化します。

アウトプロセス ビジュアライザーでは、バイナリ シリアル化はサポートされていません。 したがって、このメソッドは常に Newtonsoft.Json ライブラリを使用してシリアル化します。

SerializeAsJson(Stream, Object, Object)

Newtonsoft.Json ライブラリを使用して、指定したオブジェクトを JSON としてストリームにシリアル化します。

TransferData(Object, Stream, Stream)

UI 側ビジュアライザー型が IVisualizerObjectProvider.TransferData(Stream) または IVisualizerObjectProvider.TransferObject(object) を呼び出したときに呼び出されます。

このメソッドを使用すると、UI 側とデバッグ対象側のビジュアライザー型の間で通信したり、デバッグ対象側のビジュアライザー型でカスタム アクションを呼び出したりするためのカスタム メッセージ パッシング プロトコルを定義できます。 UI 側ビジュアライザー型は、 にシリアル化された任意のデータを incomingData 渡すことができます。また、デバッグ対象側のビジュアライザー型は、 に outgoingDataシリアル化された任意のデータで応答できます。

適用対象