다음을 통해 공유


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)

serialize된 데이터를 기반으로 전달된 개체에 대한 대체 개체를 만들고 반환합니다.

Deserialize(Stream)
사용되지 않음.

serialization 코드를 더 쉽게 작성할 수 있도록 이전 시각화 도우미에서 사용하는 레거시 도우미 메서드입니다. 기본 이진 serialization을 사용하여 스트림에서 지정된 개체를 읽습니다. 그러나 사용이 있는 보안 취약성으로 인해 더 이상 사용하지 않아야 하며 ASP.NET Core 5.0과 같은 최신 버전의 .NET에서 throw됩니다.

이진 Serialization을 지원하는 대상 앱에서 호출되는 경우 메서드가 완료된 후 스트림 읽기 포인터는 개체의 바이트를 지나 고급으로 진행됩니다.

DeserializeFromJson(Stream, Type, Object)

Newtonsoft.Json 라이브러리를 사용하여 지정된 스트림에서 특정 형식의 개체로 JSON 형식으로 데이터를 역직렬화합니다.

DeserializeFromJson<T>(Stream, Object)

Newtonsoft.Json 라이브러리를 사용하여 지정된 스트림에서 특정 형식의 개체로 JSON 형식으로 데이터를 역직렬화합니다.

GetData(Object, Stream)

데이터 Blob을 가져옵니다. 개체의 데이터를 메모리 스트림에 씁니다.

GetDeserializableObject(Stream)

대상 앱이 이진 Serialization을 지원하지 않을 수 있는 경우 역직렬화할 수 있는 개체를 가져오는 데 사용할 수 있는 도우미 메서드입니다. 이러한 경우 기본 형식은 JSON을 사용하여 직렬화되어야 하므로 호출자는 개별 속성을 쿼리하여 역직렬화하려는 개체의 형식을 확인할 수 있습니다.

Serialize(Stream, Object)

지정된 개체를 스트림으로 직렬화합니다.

기본적으로 개체는 를 통해 이진 serialization을 BinaryFormatter사용하여 직렬화됩니다. 그러나 대상 앱이 이진 serialization을 지원하지 않는 경우(ASP.NET Core 5.0 이상 애플리케이션의 경우와 같이) 메서드는 사용 가능한 JSON 직렬화 기술을 사용하여 개체를 직렬화합니다.

이진 serialization은 Out of process 시각화 도우미에서 지원되지 않습니다. 따라서 이 메서드는 항상 Newtonsoft.Json 라이브러리를 사용하여 직렬화합니다.

SerializeAsJson(Stream, Object, Object)

Newtonsoft.Json 라이브러리를 사용하여 지정된 개체를 JSON으로 스트림으로 직렬화합니다.

TransferData(Object, Stream, Stream)

UI 쪽 시각화 도우미 형식이 IVisualizerObjectProvider.TransferData(Stream) 또는 IVisualizerObjectProvider.TransferObject(object)를 호출할 때 호출됩니다.

이 메서드는 UI 쪽 및 디버기 쪽 시각화 도우미 형식 간에 통신하는 사용자 지정 메시지 전달 프로토콜을 정의하거나 디버그기 쪽 시각화 도우미 형식에서 사용자 지정 작업을 호출하는 데 사용할 수 있습니다. UI 쪽 시각화 도우미 형식은 직렬화된 incomingData 임의의 데이터를 전달할 수 있으며 디버기 쪽 시각화 도우미 형식은 로 직렬화된 임의 데이터로 outgoingData응답할 수 있습니다.

적용 대상