Microsoft.VisualStudio.DebuggerVisualizers 네임스페이스

클래스

DialogDebuggerVisualizer

모든 사용자 지정 디버거 시각화 도우미는 이 클래스에서 파생되어야 하며 VS에서 호출할 매개 변수가 없는 생성자를 제공해야 합니다.

VisualizerDevelopmentHost

관리되는 사용자 지정 시각화 도우미를 개발하는 동안 테스트를 위한 호스트 클래스입니다.

VisualizerObjectSource

시각화되는 개체에 대한 액세스를 제공합니다.
이 클래스를 서브클래스하여 사용자 지정 기능을 제공합니다.

VisualizerObjectSourceException

EE, 시각화 도우미 인프라(디버그 호스트) 또는 디버그기 사용자 코드를 통해 디버그 쪽에서 throw된 예외를 나타내며 UI 쪽에서 throw됩니다(에서 DialogDebuggerVisualizercatch 가능).

Microsoft.VisualStudio.VIL.VisualStudioHost.DebuggeeVisualizerException과 동일한 대략적인 UI입니다.

인터페이스

IAsyncVisualizerObjectProvider

디버지에서 시각화 도우미로 데이터를 전달하는 기능을 제공하는 에 IVisualizerObjectProvider2 정의된 메서드에 대한 비동기 구현을 제공하고 그 반대의 경우도 마찬가지입니다.

IDeserializableObject

기본 형식(이진 또는 JSON)을 알 수 없는 경우 개체를 역직렬화하는 데 사용되는 인터페이스입니다.

IDialogVisualizerService

시각화 도우미가 System.Windows 폼, 대화 상자 및 컨트롤을 표시하기 위해 호출할 수 있는 메서드를 제공합니다.

IVisualizerObjectProvider

디버그에서 시각화 도우미로 개체 데이터를 제공합니다.

IVisualizerObjectProvider2

디버그에서 시각화 도우미로 데이터를 전달하는 추가 기능을 제공합니다.

IVisualizerObjectProvider3

시각화 도우미 디버거 및 디버그 쪽 구성 요소가 사용할 직렬화 메커니즘을 조정하고 를 고려하여 SelectedFormatterPolicy디버그기 쪽에 데이터를 전달하는 추가 기능을 제공합니다.

열거형

FormatterPolicy

VisualizerObjectSource에서 정보를 직렬화/역직렬화할 때 사용할 서식 스타일입니다.

예제

public class DebuggerSide : DialogDebuggerVisualizer  
{  
   override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)  
   {  
      MessageBox.Show(objectProvider.GetObject().ToString());  
   }  
// . . . Other methods omitted for clarity.  
}  

설명

시각화 도우미는 Visual Studio 디버거가 의미 있는 방식으로 특정 데이터 형식의 개체를 표시하는 데 사용하는 작은 프로그램입니다. 개체를 시각화하기 위해 시각화 도우미는 디버거 프로세스( 디버거 쪽)에서 실행되는 코드와 디버그 중인 프로세스의 코드( 디버그 쪽)를 사용합니다.

디버거 쪽과 디버그 쪽은 및 IVisualizerObjectProvider를 사용하여 VisualizerObjectSource 서로 통신합니다.

디버그 쪽은 를 사용하여 VisualizerObjectSource 디버거 쪽에 대한 개체를 지정 VisualizerObjectSource 합니다. 디버거 쪽은 인터페이스에서 메서드를 호출하여 이 정보를 요청하고 받습니다 IVisualizerObjectProvider .

시각화 도우미는 데이터를 편집하고 표시할 수 있습니다. 시각화 도우미가 데이터 편집을 지원하는 경우 또는 TransferObject을 사용하여 TransferData 데이터를 호출 ReplaceData 하거나 ReplaceObject 다시 디버그기로 전송하여 데이터를 완전히 바꿔야 합니다. 데이터를 다시 저장하려면 사용자 고유의 개체 원본도 만들어야 합니다.