Dela via


Genomgång: Skriva en visualiserare i Visual Basic

Viktigt!

Från och med Visual Studio 2022 version 17.9 kan visualiserare nu skrivas i .NET 6.0+ som körs utanför processen med den nya VisualStudio.Extensibility-modellen. Information om tillägg som skapats med den nya modellen finns i dokumentationen i Skapa Visual Studio-felsökningsvisualiserare i stället. Om du behöver stöd för äldre versioner av Visual Studio eller vill skicka anpassade visualiserare som en del av en biblioteks-DLL använder du informationen i den här artikeln, som endast gäller för den äldre modellen för tilläggsutveckling (VSSDK).

Den här genomgången visar hur du skriver en enkel visualiserare med hjälp av Visual Basic. Visualiseraren som du skapar i den här genomgången visar innehållet i en sträng med hjälp av en meddelanderuta i Windows Forms. Den här enkla strängvisualiseraren är ett grundläggande exempel för att visa hur du kan skapa visualiseringar för andra datatyper som är mer tillämpliga för dina projekt.

Anmärkning

De dialogrutor och menykommandon som du ser kan skilja sig från de som beskrivs i Hjälp, beroende på dina aktiva inställningar eller utgåva. Om du vill ändra inställningarna går du till menyn Verktyg och väljer Importera och exportera . Mer information finns i Återställ inställningar.

Visualiserarkoden måste placeras i en DLL som ska läsas av felsökningsprogrammet. Det första steget är att skapa ett klassbiblioteksprojekt för DLL:en.

Skapa och förbereda ett klassbiblioteksprojekt

Skapa ett klassbiblioteksprojekt

  1. Skapa ett nytt klassbiblioteksprojekt.

    Tryck på Esc för att stänga startfönstret. Skriv Ctrl + Q för att öppna sökrutan, skriv klassbibliotek och välj sedan Visual Basic Class Library (.NET Framework).

    Tryck på Esc för att stänga startfönstret. Skriv Ctrl + Q för att öppna sökrutan, skriv visual basic, välj Mallar och välj sedan Skapa ett nytt klassbibliotek (.NET Framework).

  2. Ange ett lämpligt namn för klassbiblioteket, till exempel MyFirstVisualizer, och klicka sedan på Skapa eller OK.

    När du har skapat klassbiblioteket måste du lägga till en referens till Microsoft.VisualStudio.DebuggerVisualizers.DLL, så att du kan använda de klasser som definierats där. Först ska du dock ge projektet ett meningsfullt namn.

Så här byter du namn på Class1.vb och lägger till Microsoft.VisualStudio.DebuggerVisualizers

  1. Högerklicka på Class1.vb i Solution Explorer och klicka på Byt namn på snabbmenyn.

  2. Ändra namnet från Class1.vb till något meningsfullt, till exempel DebuggerSide.vb.

    Anmärkning

    Visual Studio ändrar automatiskt klassdeklarationen i DebuggerSide.vb så att den matchar det nya filnamnet.

  3. Högerklicka på Min första visualiserare i Solution Explorer och klicka på Lägg till referens på snabbmenyn.

  4. I dialogrutan Lägg till referens går du till fliken Bläddra och väljer Bläddra och letar reda på Microsoft.VisualStudio.DebuggerVisualizers.DLL.

    Du hittar DLL:n i <Visual Studio Install Directory>\Common7\IDE\PublicAssemblies-underkatalogen för Visual Studio-installationskatalogen.

  5. Klicka på OK.

  6. I filen DebuggerSide.vb lägger du till följande sats i satserna Imports.

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

Lägg till kod på debuggersidan

Nu är du redo att skapa koden på felsökningssidan. Det här är koden som körs i felsökningsprogrammet för att visa den information som du vill visualisera. Först måste du ändra deklarationen DebuggerSide för objektet så att det ärver från basklassen DialogDebuggerVisualizer.

Så här ärver du från DialogDebuggerVisualizer

  1. I DebuggerSide.vb går du till följande kodrad:

    Public Class DebuggerSide
    
  2. Redigera koden så att den ser ut så här:

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

    Anmärkning

    DialogDebuggerVisualizer förväntar sig ett FormatterPolicy argument i konstruktorn. Men på grund av de säkerhetsproblem som beskrivs i Särskilda överväganden på felsökningssidan för .NET 5.0+, från och med Visual Studio 2022 version 17.11, kommer visualiserare inte att kunna ange Legacy formateringsprincipen.

    DialogDebuggerVisualizer har en abstrakt metod, Show, som du måste åsidosätta.

Så här åsidosätter du metoden DialogDebuggerVisualizer.Show

  • I public class DebuggerSidelägger du till följande metod:

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

    Metoden Show innehåller den kod som faktiskt skapar dialogrutan visualiserare eller annat användargränssnitt och visar den information som har skickats till visualiseraren från felsökningsprogrammet. Du måste lägga till koden som skapar dialogrutan och visa informationen. I den här genomgången gör du detta med hjälp av en meddelanderuta i Windows Forms. Först måste du lägga till en referens och Imports instruktion för System.Windows.Forms.

Så här lägger du till System.Windows.Forms

  1. Högerklicka på Referenser i Solution Explorer och klicka på Lägg till referens på snabbmenyn.

  2. I dialogrutan Lägg till referens går du till fliken Bläddra , väljer Bläddra och letar upp System.Windows.Forms.DLL.

    Du hittar DLL:n i C:\Windows\Microsoft.NET\Framework\v4.0.30319.

  3. Klicka på OK.

  4. I DebuggerSide.cs lägger du till följande instruktion i uttrycken Imports.

    Imports System.Windows.Forms
    

Skapa visualiserarens användargränssnitt

Nu ska du lägga till kod för att skapa och visa användargränssnittet för visualiseraren. Eftersom det här är din första visualiserare håller du användargränssnittet enkelt och använder en meddelanderuta.

Så här visar du visualiserarens utdata i en dialogruta

  1. Show Lägg till följande kodrad i -metoden:

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

    Den här exempelkoden innehåller inte felhantering. Du bör inkludera felhantering i en riktig visualiserare eller någon annan typ av program.

  2. På menyn Skapa klickar du på Skapa MyFirstVisualizer. Projektet bör byggas korrekt. Korrigera eventuella byggfel innan du fortsätter.

Lägg till det nödvändiga attributet

Det är slutet på felsökningssidans kod. Det finns dock ytterligare ett steg: attributet som talar om för felsökningssidan vilken samling klasser som består av visualiseraren.

Så här lägger du till den typ som ska visualiseras för koden på felsökningssidan

I koden på felsökningssidan anger du vilken typ som ska visualiseras (objektkällan) för felsökningen med hjälp av DebuggerVisualizerAttribute attributet . Egenskapen Target anger vilken typ som ska visualiseras.

  1. Lägg till följande attributkod i DebuggerSide.vb, efter - Imports instruktionerna men före namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. På menyn Skapa klickar du på Skapa MyFirstVisualizer. Projektet bör byggas korrekt. Korrigera eventuella byggfel innan du fortsätter.

Skapa en testsele

Nu är din första visualiserare klar. Om du har följt stegen korrekt kan du skapa visualiseraren och installera den i Visual Studio. Innan du installerar en visualiserare i Visual Studio bör du dock testa den för att se till att den körs korrekt. Nu ska du skapa en testsele för att köra visualiseraren utan att installera den i Visual Studio.

Så här lägger du till en testmetod för att visa visualiseraren

  1. Lägg till följande metod i klassen public DebuggerSide:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. På menyn Skapa klickar du på Skapa MyFirstVisualizer. Projektet bör byggas korrekt. Korrigera eventuella byggfel innan du fortsätter.

    Därefter måste du skapa ett körbart projekt för att anropa visualiserarens DLL. För enkelhetens skull använder du ett konsolprogramprojekt.

Så här lägger du till ett konsolprogramprojekt i lösningen

  1. Högerklicka på lösningen i Solution Explorer, välj Lägg till och klicka sedan på Nytt projekt.

    I sökrutan skriver du Visual Basic, väljer Mallar och sedan Skapa en ny konsolapp (.NET Framework).. I dialogrutan som visas väljer du Skapa.

  2. Ange ett lämpligt namn för klassbiblioteket, till exempel MyTestConsole, och klicka sedan på Skapa eller OK.

    Nu måste du lägga till nödvändiga referenser så att MyTestConsole kan anropa MyFirstVisualizer.

Lägga till nödvändiga referenser till MyTestConsole

  1. Högerklicka på MyTestConsole i Solution Explorer och klicka på Lägg till referens på snabbmenyn.

  2. I dialogrutan Lägg till referens klickar du på Microsoft.VisualStudio.DebuggerVisualizers på fliken Bläddra .

  3. Klicka på OK.

  4. Högerklicka på MyTestConsole och klicka sedan på Lägg till referens igen.

  5. I dialogrutan Lägg till referens klickar du på fliken Projekt och väljer sedan MyFirstVisualizer.

  6. Klicka på OK.

Slutför testselen och testa visualiseraren

Nu kommer du att lägga till koden för att slutföra testramverket.

Lägga till kod i MyTestConsole

  1. Högerklicka på Program.vb i Solution Explorer och klicka på Byt namn på snabbmenyn.

  2. Redigera namnet från Module1.vb till något lämpligt, till exempel TestConsole.vb.

    Observera att Visual Studio automatiskt ändrar klassdeklarationen i TestConsole.vb så att den matchar det nya filnamnet.

  3. I TestConsole. vb, lägg till följande Imports instruktion:

    Imports MyFirstVisualizer
    
  4. I metoden Mainlägger du till följande kod:

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

    Nu är du redo att testa din första visualiserare.

Att testa visualiseraren

  1. Högerklicka på MyTestConsole i Solution Explorer och klicka på Ange som startprojekt på snabbmenyn.

  2. På felsökningsmenynklickar du på Start.

    Konsolprogrammet startar. Visualiseraren visas och visar strängen "Hello, World".

    Grattis. Du har precis skapat och testat din första visualiserare.

    Om du vill använda visualiseraren i Visual Studio i stället för att bara anropa den från testselen måste du installera den. Mer information finns i Så här: Installera en visualiserare.