IVisualizerObjectProvider 인터페이스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디버그에서 시각화 도우미로 개체 데이터를 제공합니다.
public interface class IVisualizerObjectProvider
public interface class IVisualizerObjectProvider
__interface IVisualizerObjectProvider
public interface IVisualizerObjectProvider
type IVisualizerObjectProvider = interface
Public Interface IVisualizerObjectProvider
- 파생
예제
public class DebuggerSide : DialogDebuggerVisualizer
{
override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
MessageBox.Show(objectProvider.GetObject<object>().ToString());
}
// . . . Other methods omitted for clarity.
}
설명
시각화 도우미는 Visual Studio 디버거가 특정 데이터 형식의 개체를 의미 있는 방식으로 표시(시각화)하는 데 사용하는 작은 프로그램입니다. 개체를 시각화하기 위해 시각화 도우미는 디버거 프로세스(디버거 쪽)에서 실행되는 코드와 디버그 중인 프로세스의 코드(디버그 쪽)를 사용합니다.
디버거 쪽과 디버기 쪽은 및 IVisualizerObjectProvider을 사용하여 VisualizerObjectSource 서로 통신합니다.
디버그 쪽은 를 사용하여 VisualizerObjectSource 디버거 쪽에 대한 개체를 지정 VisualizerObjectSource 합니다. 디버거 쪽은 인터페이스에서 메서드를 호출하여 이 정보를 요청하고 받습니다 IVisualizerObjectProvider .
시각화 도우미는 데이터를 편집하고 표시할 수 있습니다. 시각화 도우미가 데이터 편집을 지원하는 경우 또는 TransferObject(Object)을 사용하여 TransferData(Stream) 데이터를 호출 ReplaceData(Stream) 하거나 ReplaceObject(Object) 다시 디버그기로 전송하여 데이터를 완전히 바꿔야 합니다. 데이터를 다시 저장하려면 사용자 고유의 개체 원본도 만들어야 합니다.
속성
IsBinaryFormatterSupported |
디버그가 .NET 5에서 사용되지 않으므로 BinaryFormatter를 지원하는지 지정합니다. 그렇지 않은 경우 공급자는 JSON을 사용하여 시각화 도우미와 통신합니다. |
IsObjectReplaceable |
대체 개체를 만들 수 있는지 여부를 지정합니다. 즉, 시각화 중인 데이터 개체를 바꿀 수 있는지(읽기/쓰기) 아니면 대체할 수 없는지(읽기 전용) 결정합니다. |
메서드
GetData() |
디버그 중인 개체에 대한 데이터의 초기 Blob을 가져옵니다. 데이터는 제공된 MemoryStream에 기록됩니다. |
GetObject() |
사용되지 않음.
GetData를 사용하여 데이터를 가져오고 기본 serialization이 완료되었다고 가정하여 역직렬화합니다. |
ReplaceData(Stream) |
지정된 직렬화된 데이터를 기반으로 개체의 대체 복사본을 만듭니다. |
ReplaceObject(Object) |
기본 serialization을 사용하여 개체를 직렬화한 다음 ReplaceData를 사용하여 데이터를 설정합니다. |
TransferData(Stream) |
VisualizerObjectSource의 TransferData 메서드에 양방향으로 데이터를 전송합니다. |
TransferObject(Object) |
사용되지 않음.
기본 serialization을 사용하여 나가는 개체를 직렬화한 다음 TransferData를 호출합니다. 반환 시 들어오는 데이터를 역직렬화하고 역직렬화된 개체를 반환합니다. |