Compartilhar via


Passo a passo: escrevendo um visualizador no Visual Basic

Importante

A partir do Visual Studio 2022 versão 17.9, os visualizadores agora podem ser escritos no .NET 6.0+ que são executados fora do processo usando o novo modelo VisualStudio.Extensibility. Para extensões criadas usando o novo modelo, consulte a documentação no Criar visualizadores de depurador do Visual Studio. Se você precisar dar suporte a versões mais antigas do Visual Studio ou quiser enviar seus visualizadores personalizados como parte de uma DLL de biblioteca, use as informações neste artigo, que se aplicam apenas ao modelo mais antigo de desenvolvimento de extensão (VSSDK).

Este passo a passo mostra como escrever um visualizador simples usando o Visual Basic. O visualizador que você criará neste passo a passo exibe o conteúdo de uma cadeia de caracteres usando uma caixa de mensagem do Windows Forms. Esse visualizador de cadeia de caracteres simples é um exemplo básico para mostrar como você pode criar visualizadores para outros tipos de dados mais aplicáveis aos seus projetos.

Observação

As caixas de diálogo e os comandos de menu que você vê podem ser diferentes daqueles descritos na Ajuda, dependendo de suas configurações ativas ou edição. Para alterar suas configurações, vá para o menu Ferramentas e escolha Importar e Exportar . Para obter mais informações, confira Redefinir as configurações.

O código do visualizador deve ser colocado em uma DLL que será lida pelo depurador. A primeira etapa é criar um projeto de biblioteca de classes para a DLL.

Criar e preparar um projeto de biblioteca de classes

Para criar um projeto de biblioteca de classe

  1. Crie um novo projeto de biblioteca de classes.

    Pressione Esc para fechar a janela inicial. Digite Ctrl + Q para abrir a caixa de pesquisa, digite a biblioteca de classes e selecione a Biblioteca de Classes do Visual Basic (.NET Framework).

    Pressione Esc para fechar a janela inicial. Digite Ctrl + Q para abrir a caixa de pesquisa, digite visual basic, escolha Modelos e, em seguida, escolha Criar uma nova Biblioteca de Classes (.NET Framework).

  2. Digite um nome apropriado para a biblioteca de classes, como MyFirstVisualizer, e clique em Criar ou OK.

    Ao criar a biblioteca de classes, você deve adicionar uma referência a Microsoft.VisualStudio.DebuggerVisualizers.DLL, para que você possa usar as classes definidas lá. Primeiro, no entanto, você dá um nome significativo ao projeto.

Para renomear Class1.vb e adicionar Microsoft.VisualStudio.DebuggerVisualizers

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em Class1.vb e, no menu de atalho, clique em Renomear.

  2. Altere o nome de Class1.vb para algo significativo, como DebuggerSide.vb.

    Observação

    O Visual Studio altera automaticamente a declaração de classe em DebuggerSide.vb para corresponder ao novo nome de arquivo.

  3. No Gerenciador de Soluções, clique com o botão direito do mouse em Meu Primeiro Visualizador e, no menu de atalho, clique em Adicionar Referência.

  4. Na caixa de diálogo Adicionar Referência , na guia Procurar , selecione Procurar e localize o Microsoft.VisualStudio.DebuggerVisualizers.DLL.

    Você pode encontrar a DLL no <Diretório> de Instalação do Visual Studio\Common7\IDE\PublicAssemblies subdiretório do diretório de instalação do Visual Studio.

  5. Clique em OK.

  6. Em DebuggerSide.vb, adicione a seguinte instrução às instruções Imports:

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

Adicionar o código no lado do depurador

Agora, você está pronto para criar o código no lado do depurador. Esse é o código que é executado no depurador para exibir as informações que você deseja visualizar. Primeiro, você precisa alterar a declaração do DebuggerSide objeto para que ele herda da classe DialogDebuggerVisualizerbase.

Para herdar de DialogDebuggerVisualizer

  1. Em DebuggerSide.vb, vá para a seguinte linha de código:

    Public Class DebuggerSide
    
  2. Edite o código para que ele tenha esta aparência:

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

    Observação

    DialogDebuggerVisualizer espera um argumento FormatterPolicy em seu construtor. No entanto, devido aos problemas de segurança descritos nas Considerações especiais no lado do depurador para .NET 5.0+, iniciando a partir do Visual Studio 2022 versão 17.11, os visualizadores não poderão especificar a política de formatação Legacy.

    DialogDebuggerVisualizer tem um método abstrato, Showque você deve substituir.

Para substituir o método DialogDebuggerVisualizer.Show

  • In public class DebuggerSide, adicione o seguinte método:

    Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider)
    
        End Sub
    

    O Show método contém o código que realmente cria a caixa de diálogo do visualizador ou outra interface do usuário e exibe as informações que foram passadas para o visualizador do depurador. Você deve adicionar o código que cria a caixa de diálogo e exibe as informações. Neste passo a passo, você fará isso usando uma caixa de mensagem do Windows Forms. Primeiro, você deve adicionar uma referência e uma instrução Imports para System.Windows.Forms.

Para adicionar System.Windows.Forms

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em Referências e, no menu de atalho, clique em Adicionar Referência.

  2. Na caixa de diálogo Adicionar Referência , na guia Procurar , selecione Procurar e localize o System.Windows.Forms.DLL.

    Você pode encontrar a DLL em C:\Windows\Microsoft.NET\Framework\v4.0.30319.

  3. Clique em OK.

  4. Em DebuggerSide.cs, adicione a seguinte instrução às Imports instruções:

    Imports System.Windows.Forms
    

Crie a interface do usuário do visualizador

Agora você adicionará algum código para criar e mostrar a interface do usuário para o visualizador. Como este é seu primeiro visualizador, você manterá a interface do usuário simples e usará uma Caixa de Mensagem.

Para mostrar a saída do visualizador em uma caixa de diálogo

  1. Show No método, adicione a seguinte linha de código:

    MessageBox.Show(objectProvider.GetObject().ToString())
    

    Este código de exemplo não inclui tratamento de erros. Você deve incluir o tratamento de erros em um visualizador real ou qualquer outro tipo de aplicativo.

  2. No menu Compilar , clique em Criar MyFirstVisualizer. O projeto deve ser construído com sucesso. Corrija os erros de build antes de continuar.

Adicionar o atributo necessário

Esse é o final do código no lado do depurador. Entretanto há mais uma etapa: o atributo que informa ao lado depurado qual coleção de classes compõe o visualizador.

Para adicionar o tipo a ser visualizado para o código no lado do depurado

No código no lado do depurador, especifique o tipo a ser visualizado (a origem do objeto) para o depurado usando o atributo DebuggerVisualizerAttribute. A Target propriedade define o tipo a ser visualizado.

  1. Adicione o seguinte código de atributo a DebuggerSide.vb, depois das Imports instruções, mas antes namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. No menu Compilar , clique em Criar MyFirstVisualizer. O projeto deve ser construído com sucesso. Corrija os erros de build antes de continuar.

Criar um agente de teste

Neste momento, o primeiro visualizador é concluído. Se você seguiu as etapas corretamente, poderá criar o visualizador e instalá-lo no Visual Studio. No entanto, antes de instalar um visualizador no Visual Studio, você deve testá-lo para garantir que ele seja executado corretamente. Agora você criará um ambiente de teste para rodar o visualizador sem instalá-lo no Visual Studio.

Para mostrar o visualizador, adicione um método de teste

  1. Adicione o seguinte método à classe public DebuggerSide:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. No menu Compilar , clique em Criar MyFirstVisualizer. O projeto deve ser construído com sucesso. Corrija os erros de build antes de continuar.

    Em seguida, você deve criar um projeto executável para chamar a DLL do visualizador. Para simplificar, use um projeto de aplicativo de console.

Para adicionar um projeto de aplicativo de console à solução

  1. No Gerenciador de Soluções, clique com o botão direito do mouse na solução, escolha Adicionar e clique em Novo Projeto.

    Na caixa Pesquisar, digite visual basic, escolha Modelos e, em seguida, escolha Criar um novo Aplicativo de Console (.NET Framework). Na caixa de diálogo exibida, escolha Criar.

  2. Digite um nome apropriado para a biblioteca de classes, como MyTestConsole, e clique em Criar ou OK.

    Agora, você deve adicionar as referências necessárias para que MyTestConsole possa chamar MyFirstVisualizer.

Para adicionar referências necessárias ao MyTestConsole

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em MyTestConsole e, no menu de atalho, clique em Adicionar Referência.

  2. Na caixa de diálogo Adicionar Referência , na guia Procurar , clique em Microsoft.VisualStudio.DebuggerVisualizers.

  3. Clique em OK.

  4. Clique com o botão direito do mouse em MyTestConsole e clique em Adicionar Referência novamente.

  5. Na caixa de diálogo Adicionar Referência , clique na guia Projetos e selecione MyFirstVisualizer.

  6. Clique em OK.

Finalize seu harnês de teste e teste seu visualizador

Agora, você adicionará o código para concluir um agente de teste.

Para adicionar código ao MyTestConsole

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em Program.vb e, no menu de atalho, clique em Renomear.

  2. Edite o nome de Module1.vb para algo apropriado, como TestConsole.vb.

    Observe que o Visual Studio altera automaticamente a declaração de classe no TestConsole.vb para corresponder ao novo nome de arquivo.

  3. Em TestConsole. vb, adicione a seguinte Imports instrução:

    Imports MyFirstVisualizer
    
  4. No método Main, adicione o seguinte código:

    Dim myString As String = "Hello, World"
    DebuggerSide.TestShowVisualizer(myString)
    

    Agora você está pronto para testar seu primeiro visualizador.

Para testar o visualizador

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em MyTestConsole e, no menu de atalho, clique em Definir como Projeto de Inicialização.

  2. No menu Depurar , clique em Iniciar.

    O aplicativo de console começa. O visualizador aparece e exibe a cadeia de caracteres “Hello, World”.

    Parabéns. Você acabou de criar e testar seu primeiro visualizador.

    Se você quiser usar o visualizador no Visual Studio em vez de apenas chamá-lo do cinto de teste, será necessário instalá-lo. Para obter mais informações, consulte Como instalar um visualizador.