Freigeben über


Einführung: Erstellen eines Visualizers in Visual Basic

Von Bedeutung

Ab Visual Studio 2022-Version 17.9 können Visualisierungen jetzt in .NET 6.0+ geschrieben werden, die mit dem neuen VisualStudio.Extensibility-Modell außerhalb des Prozesses ausgeführt werden. Für Erweiterungen, die mit dem neuen Modell erstellt wurden, sehen Sie die Dokumentation unter Erstellen von Visual Studio-Debugger-Visualisierungen ein. Wenn Sie ältere Versionen von Visual Studio unterstützen oder Ihre benutzerdefinierten Visualisierungen als Teil einer Bibliotheks-DLL versenden möchten, verwenden Sie die Informationen in diesem Artikel, die nur für das ältere Modell der Erweiterungsentwicklung (VSSDK) gelten.

In dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie eine einfache Visualisierung mithilfe von Visual Basic schreiben. In dieser exemplarischen Vorgehensweise wird der Inhalt einer Zeichenfolge mithilfe eines Windows Forms-Meldungsfelds angezeigt. Diese einfache Zeichenfolgenschnellansicht ist ein einfaches Beispiel, um zu veranschaulichen, wie Sie Visualisierungen für andere Datentypen erstellen können, die für Ihre Projekte relevanter sind.

Hinweis

Die angezeigten Dialogfelder und Menübefehle unterscheiden sich je nach aktiven Einstellungen oder Edition möglicherweise von den in der Hilfe beschriebenen Befehlen. Um Ihre Einstellungen zu ändern, wechseln Sie zum Menü "Extras ", und wählen Sie "Importieren und Exportieren" aus. Weitere Informationen finden Sie unter "Einstellungen zurücksetzen".

Der Visualisierercode muss in einer DLL platziert werden, die vom Debugger gelesen wird. Der erste Schritt besteht darin, ein Klassenbibliotheksprojekt für die DLL zu erstellen.

Erstellen und Vorbereiten eines Klassenbibliotheksprojekts

So erstellen Sie ein Klassenbibliotheksprojekt

  1. Erstellen Sie ein neues Klassenbibliotheksprojekt.

    Drücken Sie ESC , um das Startfenster zu schließen. Geben Sie STRG+Q ein, um das Suchfeld zu öffnen, geben Sie klassenbibliothek ein, und wählen Sie dann die Visual Basic-Klassenbibliothek (.NET Framework) aus.

    Drücken Sie ESC , um das Startfenster zu schließen. Geben Sie STRG+Q ein, um das Suchfeld zu öffnen, geben Sie Visual Basic ein, wählen Sie "Vorlagen" und dann " Neue Klassenbibliothek erstellen" (.NET Framework) aus.

  2. Geben Sie einen geeigneten Namen für die Klassenbibliothek ein, z MyFirstVisualizer. B. und klicken Sie dann auf "Erstellen " oder " OK".

    Wenn Sie die Klassenbibliothek erstellt haben, müssen Sie einen Verweis auf Microsoft.VisualStudio.DebuggerVisualizers.DLL hinzufügen, damit Sie die dort definierten Klassen verwenden können. Zunächst geben Sie Ihrem Projekt jedoch einen aussagekräftigen Namen.

So benennen Sie Class1.vb um, und fügen Sie Microsoft.VisualStudio.DebuggerVisualizers hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Class1.vb, und klicken Sie im Kontextmenü auf "Umbenennen".

  2. Ändern Sie den Namen von Class1.vb in einen aussagekräftigen Namen, z. B. DebuggerSide.vb.

    Hinweis

    Visual Studio ändert automatisch die Klassendeklaration in DebuggerSide.vb entsprechend dem neuen Dateinamen.

  3. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "Meine erste Visualisierung", und klicken Sie im Kontextmenü auf " Verweis hinzufügen".

  4. Wählen Sie im Dialogfeld " Verweis hinzufügen " auf der Registerkarte " Durchsuchen " die Option "Durchsuchen" aus, und suchen Sie die Microsoft.VisualStudio.DebuggerVisualizers.DLL.

    Sie finden die DLL in <Visual Studio Install Directory>\Common7\IDE\PublicAssemblies-Unterverzeichnis des Installationsverzeichnisses von Visual Studio.

  5. Klicke auf OK.

  6. Fügen Sie in DebuggerSide.vb die folgende Anweisung zu den Imports Anweisungen hinzu:

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

Hinzufügen des debuggerseitigen Codes

Jetzt können Sie den debuggerseitigen Code erstellen. Dies ist der Code, der im Debugger ausgeführt wird, um die Informationen anzuzeigen, die Sie visualisieren möchten. Zunächst müssen Sie die Deklaration des DebuggerSide Objekts so ändern, dass es von der Basisklasse DialogDebuggerVisualizererbt.

So erben Sie von DialogDebuggerVisualizer

  1. Wechseln Sie in DebuggerSide.vb zur folgenden Codezeile:

    Public Class DebuggerSide
    
  2. Bearbeiten Sie den Code so, dass er wie folgt aussieht:

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

    Hinweis

    DialogDebuggerVisualizer erwartet ein FormatterPolicy Argument im Konstruktor. Aufgrund der sicherheitsrelevanten Probleme, die in den Spezialüberlegungen für Debugger-Seiten von .NET 5.0+ beschrieben werden, können Visualisierer ab Visual Studio 2022, Version 17.11, jedoch nicht mehr die Legacy Formatierrichtlinie angeben.

    DialogDebuggerVisualizer verfügt über eine abstrakte Methode, Showdie Sie überschreiben müssen.

So überschreiben Sie die DialogDebuggerVisualizer.Show-Methode

  • Fügen Sie in public class DebuggerSide die folgende Methode hinzu:

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

    Die Show Methode enthält den Code, der tatsächlich das Dialogfeld "Visualizer" oder eine andere Benutzeroberfläche erstellt, und zeigt die Informationen an, die vom Debugger an die Visualisierung übergeben wurden. Sie müssen den Code hinzufügen, der das Dialogfeld erstellt und die Informationen anzeigt. In dieser exemplarischen Vorgehensweise verwenden Sie dazu ein Windows Forms-Meldungsfeld. Zuerst müssen Sie eine Anweisung und einen Verweis auf System.Windows.Forms hinzufügen.

So fügen Sie System.Windows.Forms hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und klicken Sie im Kontextmenü auf "Verweis hinzufügen".

  2. Wählen Sie im Dialogfeld " Verweis hinzufügen " auf der Registerkarte " Durchsuchen " die Option "Durchsuchen" aus, und suchen Sie die System.Windows.Forms.DLL.

    Sie finden die DLL in C:\Windows\Microsoft.NET\Framework\v4.0.30319.

  3. Klicke auf OK.

  4. Fügen Sie in DebuggerSide.cs die folgende Anweisung zu den Imports Anweisungen hinzu:

    Imports System.Windows.Forms
    

Erstellen Sie die Benutzeroberfläche Ihres Visualizers

Jetzt fügen Sie Code hinzu, um die Benutzeroberfläche für Ihre Visualisierung zu erstellen und anzuzeigen. Da dies Ihre erste Visualisierung ist, behalten Sie die Benutzeroberfläche einfach und verwenden ein Meldungsfeld.

So zeigen Sie die Visualisiererausgabe in einem Dialogfeld an

  1. Fügen Sie in der Show Methode die folgende Codezeile hinzu:

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

    Dieser Beispielcode enthält keine Fehlerbehandlung. Sie sollten die Fehlerbehandlung in eine echte Visualisierung oder eine beliebige andere Art von Anwendung einschließen.

  2. Klicken Sie im Menü " Erstellen " auf "MyFirstVisualizer erstellen". Das Projekt sollte erfolgreich erstellt werden. Korrigieren Sie alle Buildfehler, bevor Sie fortfahren.

Hinzufügen des erforderlichen Attributs

Das ist das Ende des debuggerseitigen Codes. Es gibt jedoch einen weiteren Schritt: Das Attribut, das der zu debuggenden Seite angibt, welche Sammlung von Klassen den Visualizer bildet.

Um den Typ zur Visualisierung für den Code auf der Debugger-Seite hinzuzufügen

Im Code auf der Debugger-Seite geben Sie den Typ an, der für die Visualisierung des Debuggees, also die Objektquelle, mithilfe des DebuggerVisualizerAttribute Attributs verwendet werden soll. Die Target Eigenschaft legt den Typ fest, der visualisiert werden soll.

  1. Fügen Sie den folgenden Attributcode zu DebuggerSide.vb, nach den Imports Anweisungen, aber vor namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. Klicken Sie im Menü " Erstellen " auf "MyFirstVisualizer erstellen". Das Projekt sollte erfolgreich erstellt werden. Korrigieren Sie alle Buildfehler, bevor Sie fortfahren.

Test-Harness erstellen

An diesem Punkt ist Ihre erste Visualisierung abgeschlossen. Wenn Sie die Schritte richtig ausgeführt haben, können Sie die Visualisierung erstellen und in Visual Studio installieren. Bevor Sie eine Visualisierung in Visual Studio installieren, sollten Sie sie jedoch testen, um sicherzustellen, dass sie ordnungsgemäß ausgeführt wird. Sie erstellen jetzt eine Testumgebung, um die Visualisierung auszuführen, ohne sie in Visual Studio zu installieren.

Fügen Sie eine Testmethode hinzu, um den Visualizer anzuzeigen

  1. Fügen Sie der Klasse public DebuggerSidedie folgende Methode hinzu:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. Klicken Sie im Menü " Erstellen " auf "MyFirstVisualizer erstellen". Das Projekt sollte erfolgreich erstellt werden. Korrigieren Sie alle Buildfehler, bevor Sie fortfahren.

    Als Nächstes müssen Sie ein ausführbares Projekt erstellen, um die Visualizer-DLL aufzurufen. Verwenden Sie aus Gründen der Einfachheit ein Konsolenanwendungsprojekt.

So fügen Sie der Lösung ein Konsolenanwendungsprojekt hinzu

  1. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf die Projektmappe, wählen Sie Hinzufügen aus und klicken Sie dann auf Neues Projekt.

    Geben Sie im Suchfeld Visual Basic ein, wählen Sie "Vorlagen" und dann " Neue Konsolen-App erstellen" (.NET Framework) aus. Wählen Sie im angezeigten Dialogfeld Erstellen aus.

  2. Geben Sie einen geeigneten Namen für die Klassenbibliothek ein, z MyTestConsole. B. und klicken Sie dann auf "Erstellen " oder " OK".

    Jetzt müssen Sie die erforderlichen Verweise hinzufügen, damit MyTestConsole MyFirstVisualizer aufrufen kann.

Gehen Sie wie folgt vor, um erforderliche Verweise auf MyTestConsole hinzuzufügen

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "MyTestConsole", und klicken Sie im Kontextmenü auf " Verweis hinzufügen".

  2. Klicken Sie im Dialogfeld " Verweis hinzufügen " auf der Registerkarte " Durchsuchen " auf "Microsoft.VisualStudio.DebuggerVisualizers".

  3. Klicke auf OK.

  4. Klicken Sie mit der rechten Maustaste auf "MyTestConsole", und klicken Sie dann erneut auf "Verweis hinzufügen ".

  5. Klicken Sie im Dialogfeld " Verweis hinzufügen " auf die Registerkarte "Projekte ", und wählen Sie dann "MyFirstVisualizer" aus.

  6. Klicke auf OK.

Beenden Sie Ihr Test-Harness und testen Sie Ihren Visualizer.

Jetzt fügen Sie den Code hinzu, um das Testgerüst abzuschließen.

Um Code zu MyTestConsole hinzuzufügen

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Program.vb, und klicken Sie im Kontextmenü auf "Umbenennen".

  2. Ändern Sie den Namen von Module1.vb in einen geeigneten Namen, z. B. TestConsole.vb.

    Beachten Sie, dass Visual Studio die Klassendeklaration in TestConsole.vb automatisch entsprechend dem neuen Dateinamen anpasst.

  3. In TestConsole. vb, fügen Sie die folgende Imports Anweisung hinzu:

    Imports MyFirstVisualizer
    
  4. Fügen Sie in der Methode Mainden folgenden Code hinzu:

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

    Jetzt können Sie Ihre erste Visualisierung testen.

So testen Sie die Visualisierung

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf "MyTestConsole", und klicken Sie im Kontextmenü auf "Als Startprojekt festlegen".

  2. Klicken Sie im Menü " Debuggen " auf "Start".

    Die Konsolenanwendung wird gestartet. Die Visualisierung wird angezeigt und zeigt die Zeichenfolge "Hello, World" an.

    Glückwunsch. Sie haben gerade Ihren ersten Visualizer erstellt und getestet.

    Wenn Sie Ihren Visualizer in Visual Studio verwenden möchten, statt es einfach nur aus der Testumgebung aufzurufen, müssen Sie ihn installieren. Weitere Informationen finden Sie unter How to: Install a Visualizer.