Compartir a través de


Tutorial: Escritura de un visualizador en Visual Basic

Importante

A partir de la versión 17.9 de Visual Studio 2022, los visualizadores ahora se pueden escribir en .NET 6.0+ que se ejecutan fuera de proceso mediante el nuevo modelo de extensibilidad VisualStudio.Extensibility. Para las extensiones creadas con el nuevo modelo, consulte en su lugar la documentación en Creación de visualizadores del depurador de Visual Studio. Si necesita admitir versiones anteriores de Visual Studio o desea enviar los visualizadores personalizados como parte de un archivo DLL de biblioteca, use la información de este artículo, que solo se aplica al modelo anterior de desarrollo de extensiones (VSSDK).

En este tutorial se muestra cómo escribir un visualizador sencillo mediante Visual Basic. El visualizador que creará en este tutorial muestra el contenido de una cadena mediante un cuadro de mensaje de Windows Forms. Este visualizador de cadenas simple es un ejemplo básico para mostrar cómo puede crear visualizadores para otros tipos de datos más aplicables a los proyectos.

Nota:

Los cuadros de diálogo y los comandos de menú que ve pueden diferir de los descritos en Ayuda, en función de la configuración activa o la edición. Para cambiar la configuración, vaya al menú Herramientas y elija Importar y exportar . Para obtener más información, vea Restablecer la configuración.

El código del visualizador debe colocarse en un archivo DLL que será leído por el depurador. El primer paso es crear un proyecto de biblioteca de clases para el archivo DLL.

Crear y preparar un proyecto de biblioteca de clases

Para crear un proyecto de biblioteca de clases

  1. Cree un nuevo proyecto de biblioteca de clases.

    Presione esc para cerrar la ventana de inicio. Escriba Ctrl + Q para abrir el cuadro de búsqueda, escriba biblioteca de clases y, a continuación, seleccione la Biblioteca de clases de Visual Basic (.NET Framework).

    Presione esc para cerrar la ventana de inicio. Escriba Ctrl + Q para abrir el cuadro de búsqueda, escriba visual basic, elija Plantillas y, después, elija Crear una nueva Biblioteca de Clases (.NET Framework).

  2. Escriba un nombre adecuado para la biblioteca de clases, como MyFirstVisualizery, a continuación, haga clic en Crear o Aceptar.

    Cuando haya creado la biblioteca de clases, debe agregar una referencia a Microsoft.VisualStudio.DebuggerVisualizers.DLL, de modo que pueda usar las clases definidas allí. En primer lugar, sin embargo, asigne un nombre descriptivo al proyecto.

Para cambiar el nombre de Class1.vb y agregar Microsoft.VisualStudio.DebuggerVisualizers

  1. En el Explorador de soluciones, haga clic con el botón derecho en Class1.vb y, en el menú contextual, haga clic en Cambiar nombre.

  2. Cambie el nombre de Class1.vb a algo significativo, como DebuggerSide.vb.

    Nota:

    Visual Studio cambia automáticamente la declaración de clase en DebuggerSide.vb para que coincida con el nuevo nombre de archivo.

  3. En el Explorador de soluciones, haga clic con el botón derecho en Mi primer visualizador y, en el menú contextual, haga clic en Agregar referencia.

  4. En el cuadro de diálogo Agregar referencia , en la pestaña Examinar , seleccione Examinar y busque el Microsoft.VisualStudio.DebuggerVisualizers.DLL.

    Puede encontrar el archivo DLL en <el subdirectorio Directorio> de instalación de Visual Studio\Common7\IDE\PublicAssemblies del directorio de instalación de Visual Studio.

  5. Haz clic en Aceptar.

  6. En DebuggerSide.vb, agregue la instrucción siguiente a las instrucciones Imports:

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

Agregar el código depurado

Ahora, ya está listo para crear el código del depurador. Este es el código que se ejecuta dentro del depurador para mostrar la información que desea visualizar. En primer lugar, debe cambiar la declaración del DebuggerSide objeto para que herede de la clase DialogDebuggerVisualizerbase .

Para heredar de DialogDebuggerVisualizer

  1. En DebuggerSide.vb, vaya a la siguiente línea de código:

    Public Class DebuggerSide
    
  2. Edite el código para que tenga este aspecto:

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

    Nota:

    DialogDebuggerVisualizer espera un FormatterPolicy argumento en su constructor. Sin embargo, debido a los problemas de seguridad descritos en Consideraciones especiales del lado del depurador para .NET 5.0 y versiones posteriores, a partir de la versión 17.11 de Visual Studio 2022, los visualizadores no podrán especificar la directiva de formateador Legacy.

    DialogDebuggerVisualizer tiene un método abstracto, Show, que debe invalidar.

Para invalidar el método DialogDebuggerVisualizer.Show

  • En public class DebuggerSide, agregue el método siguiente:

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

    El Show método contiene el código que realmente crea el cuadro de diálogo del visualizador u otra interfaz de usuario y muestra la información que se ha pasado al visualizador desde el depurador. Debe agregar el código que crea el cuadro de diálogo y muestra la información. En este tutorial, lo hará con un cuadro de mensaje de Windows Forms. En primer lugar debe agregar una referencia y una instrucción Imports para System.Windows.Forms.

Para agregar System.Windows.Forms

  1. En el Explorador de soluciones, haga clic con el botón derecho en Referencias y, en el menú contextual, haga clic en Agregar referencia.

  2. En el cuadro de diálogo Agregar referencia , en la pestaña Examinar , seleccione Examinar y busque la System.Windows.Forms.DLL.

    Puede encontrar el archivo DLL en C:\Windows\Microsoft.NET\Framework\v4.0.30319.

  3. Haz clic en Aceptar.

  4. En DebuggerSide.cs, agregue la siguiente instrucción a las Imports instrucciones :

    Imports System.Windows.Forms
    

Creación de la interfaz de usuario del visualizador

Ahora agregará código para crear y mostrar la interfaz de usuario del visualizador. Dado que este es el primer visualizador, mantendrá la interfaz de usuario sencilla y usará un cuadro de mensaje.

Para mostrar la salida del visualizador en un cuadro de diálogo

  1. En el Show método , agregue la siguiente línea de código:

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

    Este código de ejemplo no incluye el control de errores. Debe incluir el control de errores en un visualizador real o en cualquier otro tipo de aplicación.

  2. En el menú Compilar , haga clic en Compilar MyFirstVisualizer. El proyecto debería compilarse correctamente. Corrija los errores de compilación antes de continuar.

Agregar el atributo necesario

Ése es el fin del código del depurador. Sin embargo, hay un paso más que realizar; el atributo que indica al lado depurado qué colección de clases incluye el visualizador.

Para agregar el tipo que se va a visualizar en el código del lado depurado

En el código del depurador, especifique el tipo que se va a visualizar (el origen del objeto) en el lado depurado con el atributo DebuggerVisualizerAttribute. La Target propiedad establece el tipo que se va a visualizar.

  1. Agregue el código de atributo siguiente a DebuggerSide.vb, después de las instrucciones Imports, pero antes de namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. En el menú Compilar , haga clic en Compilar MyFirstVisualizer. El proyecto debería compilarse correctamente. Corrija los errores de compilación antes de continuar.

Creación de un arnés de pruebas

En este momento, el primer visualizador está terminado. Si ha seguido los pasos correctamente, puede compilar el visualizador e instalarlo en Visual Studio. Sin embargo, antes de instalar un visualizador en Visual Studio, debe probarlo para asegurarse de que se ejecuta correctamente. Ahora creará un arnés de prueba para ejecutar el visualizador sin instalarlo en Visual Studio.

Para agregar un método de prueba para mostrar el visualizador

  1. Agregue el método siguiente a la clase public DebuggerSide:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. En el menú Compilar , haga clic en Compilar MyFirstVisualizer. El proyecto debería compilarse correctamente. Corrija los errores de compilación antes de continuar.

    A continuación, debe crear un proyecto ejecutable para llamar a la DLL del visualizador. Para simplificar, use un proyecto de aplicación de consola.

Para agregar un proyecto de aplicación de consola a la solución

  1. En el Explorador de soluciones, haga clic con el botón derecho en la solución, elija Agregar y, a continuación, haga clic en Nuevo proyecto.

    En el cuadro de búsqueda, escriba visual basic, elija Plantillas y, luego, Create a new Console App (.NET Framework) [Crear una nueva aplicación de consola (.NET Framework)]. En el cuadro de diálogo que aparece, elija Crear.

  2. Escriba un nombre adecuado para la biblioteca de clases, como MyTestConsoley, a continuación, haga clic en Crear o Aceptar.

    Ahora, debe agregar las referencias necesarias para que MyTestConsole pueda llamar a MyFirstVisualizer.

Para agregar referencias necesarias a MyTestConsole

  1. En el Explorador de soluciones, haga clic con el botón derecho en MyTestConsole y, en el menú contextual, haga clic en Agregar referencia.

  2. En el cuadro de diálogo Agregar referencia , en la pestaña Examinar , haga clic en Microsoft.VisualStudio.DebuggerVisualizers.

  3. Haz clic en Aceptar.

  4. Haga clic con el botón derecho en MyTestConsole y, a continuación, haga clic en Agregar referencia de nuevo.

  5. En el cuadro de diálogo Agregar referencia , haga clic en la pestaña Proyectos y seleccione MyFirstVisualizer.

  6. Haz clic en Aceptar.

Finalizar el arnés de pruebas y probar el visualizador

Ahora agregará el código para finalizar la herramienta de ejecución de pruebas.

Para agregar código a MyTestConsole

  1. En el Explorador de soluciones, haga clic con el botón derecho en Program.vb y, en el menú contextual, haga clic en Cambiar nombre.

  2. Edite el nombre de Module1.vb a algo adecuado, como TestConsole.vb.

    Tenga en cuenta que Visual Studio cambia automáticamente la declaración de clase en TestConsole.vb para que coincida con el nuevo nombre de archivo.

  3. En TestConsole. vb, agregue la instrucción Imports siguiente:

    Imports MyFirstVisualizer
    
  4. En el método Main, agregue el código siguiente:

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

    Ahora está listo para probar el primer visualizador.

Para probar el visualizador

  1. En el Explorador de soluciones, haga clic con el botón derecho en MyTestConsole y, en el menú contextual, haga clic en Establecer como proyecto de inicio.

  2. En el menú Depurar, haga clic en Iniciar.

    Se inicia la aplicación de consola. El visualizador aparece y muestra la cadena "Hello, World".

    Felicidades. Acaba de construir y probar su primer visualizador.

    Si quiere usar el visualizador en Visual Studio en lugar de llamarlo desde el arnés de prueba, debe instalarlo. Para obtener más información, vea Cómo: Instalar un visualizador.