Compartilhar via


VisualizerObjectSource Classe

Definição

Fornece acesso ao objeto que está sendo visualizado.
Subclasse essa classe para fornecer funcionalidade personalizada.

public ref class VisualizerObjectSource
[Windows::Foundation::Metadata::WebHostHidden]
class VisualizerObjectSource
public class VisualizerObjectSource
type VisualizerObjectSource = class
Public Class VisualizerObjectSource
Herança
VisualizerObjectSource

Exemplos

[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")]  

Comentários

Um visualizador é um pequeno programa que o depurador do Visual Studio usa para exibir (visualizar) um objeto de um tipo de dados específico de maneira significativa. Para visualizar um objeto, um visualizador usa o código que é executado no processo do depurador (o lado do depurador) e o código no processo que está sendo depurado (o lado do depurador).

O lado do depurador e o lado do depurador se comunicam entre si usando VisualizerObjectSource e IVisualizerObjectProvider.

O lado do depurador usa o DebuggerVisualizerAttribute para especificar um objeto VisualizerObjectSource para o lado do depurador. O lado do depurador tem acesso indiretamente por meio da IVisualizerObjectProvider interface .

Construtores

VisualizerObjectSource()

Fornece acesso ao objeto que está sendo visualizado.
Subclasse essa classe para fornecer funcionalidade personalizada.

Propriedades

IsBinaryFormatterSupported

Retorna true se o processo de depuração em que o visualizador está hospedado dá suporte à classe Formatador Binário. Se esse não for o caso, as classes derivadas dessa classe deverão serializar seus objetos por meio de JSON.

SelectedFormatterPolicy

A política de formato que essa classe pretende usar ao serializar/desserializar informações. No entanto, ele pode ser substituído pelo depurador em cenários em que não há suporte para a política de formato escolhido.

Métodos

CreateReplacementObject(Object, Stream)

Cria e retorna um objeto de substituição para o objeto passado com base nos dados serializados.

Deserialize(Stream)
Obsoleto.

Método auxiliar herdado usado por visualizadores antigos que facilita a gravação de código de serialização. Ele usa a serialização binária padrão para ler o objeto fornecido do fluxo. No entanto, devido a vulnerabilidades de segurança com seu uso, ele não deve mais ser usado e será lançado em versões mais recentes do .NET, como ASP.NET Core 5.0.

Se chamado em um aplicativo de destino que dá suporte à Serialização Binária, depois que o método conclui o ponteiro de leitura de fluxo é avançado após os bytes do objeto

DeserializeFromJson(Stream, Type, Object)

Desserializa os dados no formato JSON do fluxo especificado em um objeto de um tipo específico usando a biblioteca Newtonsoft.Json.

DeserializeFromJson<T>(Stream, Object)

Desserializa os dados no formato JSON do fluxo especificado em um objeto de um tipo específico usando a biblioteca Newtonsoft.Json.

GetData(Object, Stream)

Obtém um blob de dados. Grava dados do objeto no fluxo de memória.

GetDeserializableObject(Stream)

Método auxiliar que pode ser usado para obter um objeto desserializável para casos em que o aplicativo de destino pode não dar suporte à Serialização Binária. Nesses casos, o formato subjacente deve ser serializado usando JSON, para que os chamadores possam consultar propriedades individuais para determinar o tipo do objeto que desejam desserializar.

Serialize(Stream, Object)

Serializa o objeto especificado em um fluxo.

Por padrão, os objetos serão serializados usando a serialização binária por meio do BinaryFormatter. No entanto, se o aplicativo de destino não der suporte à serialização binária (como no caso de aplicativos ASP.NET Core 5.0+), o método serializará o objeto usando qualquer tecnologia de serialização JSON disponível.

Não há suporte para serialização binária em visualizadores fora do processo. Portanto, esse método sempre os serializará usando a biblioteca Newtonsoft.Json.

SerializeAsJson(Stream, Object, Object)

Serializa o objeto especificado como JSON em um fluxo usando a biblioteca Newtonsoft.Json.

TransferData(Object, Stream, Stream)

Invocado quando o tipo de visualizador do lado da interface do usuário chama IVisualizerObjectProvider.TransferData(Stream) ou IVisualizerObjectProvider.TransferObject(object).

Esse método pode ser usado para definir um protocolo de passagem de mensagem personalizado para se comunicar entre os tipos de visualizador do lado da interface do usuário e debuggee-side ou para invocar ações personalizadas no tipo de visualizador do lado de depuração. O tipo de visualizador do lado da interface do usuário pode passar dados arbitrários serializados para incomingData e o tipo de visualizador do lado de depuração pode responder com dados arbitrários serializados em outgoingData.

Aplica-se a