Como: Usar um visualizador

Este tópico se aplica a:

Edição

Visual Basic

C#

C++

Desenvolvedores Web

Express

Somente Gerenciador

Padrão

Somente Gerenciador

PRO e equipe

Somente Gerenciador

Legenda de tabela:

Aplica-se

Não é aplicada

Comando ou comandos oculta por padrão.

Você pode gravar um visualizador personalizado para um objeto de qualquer classe gerenciada exceto para Object ou Array.

A arquitetura de um visualizador do elemento a ser depurado tem duas partes:

  • O debugger side executa com o depurador do Visual Studio.O código do debugger-side cria e exibe a interface do usuário para seu visualizador.

  • O debugger side executa com o processo do Visual Studio que está depurando (o debuggee).

O objeto de dados que você deseja visualizar (um objeto String por exemplo), existe no processo do elemento a ser depurado.Portanto, o lado a ser depurado tem que enviar esse objeto de dados para o lado do depurador, que pode exibí-lo usando uma interface de usuário que você cria.

O debuggee side recebe esse objeto de dados para ser visualizado de um object provedor que implementa o IVisualizerObjectProvider interface. O lado a ser depurado envia o objeto de dados por meio de objeto de fonte, que é derivada de VisualizerObjectSource. O object provedor também pode enviar dados de volta para o objeto de fonte.Isso permite que você gravar um visualizador que edita, bem sistema autônomo exibe sistema autônomo dados.O provedor de objeto pode ser substituído para falar para o avaliador da expressão e, portanto, para a object fonte

O debuggee side e debugger side comunicam-se entre si por meio de Stream. Métodos são fornecidos para serializar um objeto de dados em um Stream e desserializar o Stream volta para um objeto de dados.

O código do debuggee side é especificado usando o atributo DebuggerVisualizer (DebuggerVisualizerAttribute).

Para criar a interface do usuário visualizador no debuggee side, você deve criar uma classe que herda de DialogDebuggerVisualizer e substituem a DialogDebuggerVisualizer.Show método para exibir a interface.

Você pode usar IDialogVisualizerService Para exibir Windows Forms, caixas de diálogo e controles de seu visualizador.

Suporte para tipos genéricos é limitado.Você pode escrever um visualizador para um destino que é um tipo genérico somente se o tipo genérico for um tipo aberto.Essa restrição é igual a restrição ao usar o DebuggerTypeProxy atributo. Para obter detalhes, consulte:Usando um atributo DebuggerTypeProxy.

Visualizadores personalizados podem ter considerações de segurança.Consulte Considerações sobre segurança do Visualizador.

Para obter uma descrição da arquitetura do visualizador, consulte Arquitetura de visualizador.

Os procedimentos a seguir fornecem uma visão de alto nível do que é preciso fazer para criar um visualizador.Para obter uma explicação mais detalhada, consulte Demonstra Passo a passo: Escrever um visualizador em translation from VPE for Csharp.

Para criar o lado do depurador

  1. Use IVisualizerObjectProvider métodos para obter o objeto visualizado no lado do depurador.

  2. Criar uma classe que herda de DialogDebuggerVisualizer.

  3. Substituir o DialogDebuggerVisualizer.Show método para exibir a interface. Use IDialogVisualizerService métodos para exibir formulários, caixas de diálogo e controles do Windows sistema autônomo parte da sua interface.

  4. Aplicar DebuggerVisualizerAttribute, dando-o um visualizador (DialogDebuggerVisualizer).

Para criar o debuggee side

  1. Aplicar DebuggerVisualizerAttribute, dando-o um visualizador (DialogDebuggerVisualizer) e um (fonte do objetoVisualizerObjectSource). Se você omitir a object source, uma fonte de objeto padrão será usada

  2. Se você desejar que seu visualizador para poder edição objetos de dados, além disso, para exibir, você precisará substituir o TransferData ou CreateReplacementObject métodos de VisualizerObjectSource.

Consulte também

Tarefas

Como: Instalar um visualizador

Como: Testar e depurar um visualizador

Conceitos

Arquitetura de visualizador

Considerações sobre segurança do Visualizador

Outros recursos

Visualizadores