Wskazówki: pisanie wizualizatora w Visual Basic
Ważne
Począwszy od programu Visual Studio 2022 w wersji 17.9, wizualizatory można teraz pisać na platformie .NET 6.0+, które wybiegają poza proces przy użyciu nowego modelu rozszerzenia VisualStudio.Extensibility. Zachęcamy autorów wizualizatorów do odwołania się do nowej dokumentacji w sekcji Tworzenie wizualizatorów debugera programu Visual Studio, chyba że chcą obsługiwać starsze wersje programu Visual Studio lub chcą dostarczać niestandardowe wizualizatory w ramach biblioteki DLL.
W tym przewodniku pokazano, jak napisać prosty wizualizator przy użyciu języka Visual Basic. Wizualizator utworzony w tym przewodniku wyświetla zawartość ciągu przy użyciu pola komunikatu Formularze systemu Windows. Ten prosty wizualizator ciągów to podstawowy przykład pokazujący, jak można tworzyć wizualizatory dla innych typów danych bardziej odpowiednie dla projektów.
Uwaga
Wyświetlane okna dialogowe i polecenia menu mogą różnić się od poleceń opisanych w pomocy, w zależności od aktywnych ustawień lub edycji. Aby zmienić ustawienia, przejdź do menu Narzędzia i wybierz pozycję Importuj i Eksportuj . Aby uzyskać więcej informacji, zobacz Resetowanie ustawień.
Kod wizualizatora musi zostać umieszczony w dll, który będzie odczytywany przez debuger. Pierwszym krokiem jest utworzenie projektu biblioteki klas dla biblioteki DLL.
Tworzenie i przygotowywanie projektu biblioteki klas
Aby utworzyć projekt biblioteki klas
Utwórz nowy projekt biblioteki klas.
Naciśnij klawisz Esc , aby zamknąć okno uruchamiania. Wpisz Ctrl + Q, aby otworzyć pole wyszukiwania, wpisz visual basic, wybierz pozycję Szablony, a następnie wybierz pozycję Utwórz nową bibliotekę klas (.NET Framework). W wyświetlonym oknie dialogowym wybierz pozycję Utwórz.
Wpisz odpowiednią nazwę biblioteki klas, na przykład
MyFirstVisualizer
, a następnie kliknij przycisk Utwórz lub OK.Po utworzeniu biblioteki klas należy dodać odwołanie do Microsoft.VisualStudio.DebuggerVisualizers.DLL, aby można było użyć klas zdefiniowanych w tym miejscu. Najpierw należy jednak nadać projektowi zrozumiałą nazwę.
Aby zmienić nazwę Class1.vb i dodać microsoft.VisualStudio.DebuggerVisualizers
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy Class1.vb, a następnie w menu skrótów kliknij polecenie Zmień nazwę.
Zmień nazwę z Class1.vb na coś znaczącego, takiego jak DebuggerSide.vb.
Uwaga
Program Visual Studio automatycznie zmienia deklarację klasy w DebuggerSide.vb, aby pasować do nowej nazwy pliku.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Mój pierwszy wizualizator, a następnie w menu skrótów kliknij polecenie Dodaj odwołanie.
W oknie dialogowym Dodawanie odwołania na karcie Przeglądaj wybierz pozycję Przeglądaj i znajdź Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Bibliotekę DLL można znaleźć w <katalogu instalacyjnym programu Visual Studio>\Common7\IDE\PublicAssemblies katalogu instalacyjnego programu Visual Studio.
Kliknij przycisk OK.
W DebuggerSide.vb dodaj następującą instrukcję do instrukcji
Imports
:Imports Microsoft.VisualStudio.DebuggerVisualizers
Dodawanie kodu po stronie debugera
Teraz możesz utworzyć kod po stronie debugera. Jest to kod uruchamiany w debugerze w celu wyświetlenia informacji, które chcesz zwizualizować. Najpierw należy zmienić deklarację DebuggerSide
obiektu, aby dziedziczyła z klasy DialogDebuggerVisualizer
bazowej .
Aby dziedziczyć z okna DialogoweDebuggerVisualizer
W DebuggerSide.vb przejdź do następującego wiersza kodu:
Public Class DebuggerSide
Zmodyfikuj kod tak, aby wyglądał następująco:
Public Class DebuggerSide Inherits DialogDebuggerVisualizer
Uwaga
DialogDebuggerVisualizer oczekuje argumentu
FormatterPolicy
w konstruktorze. Jednak ze względu na problemy z zabezpieczeniami opisane w sekcji Specjalne zagadnienia po stronie debugera dla platformy .NET 5.0 lub nowszej, począwszy od programu Visual Studio 2022 w wersji 17.11, wizualizatory nie będą mogły określićLegacy
zasad formatatora.DialogDebuggerVisualizer
ma jedną metodę abstrakcyjną ,Show
którą należy zastąpić.
Aby zastąpić metodę DialogDebuggerVisualizer.Show
W
public class DebuggerSide
pliku dodaj następującą metodę:Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider) End Sub
Metoda
Show
zawiera kod, który faktycznie tworzy okno dialogowe wizualizatora lub inny interfejs użytkownika, i wyświetla informacje przekazane do wizualizatora z debugera. Należy dodać kod, który tworzy okno dialogowe i wyświetlać informacje. W tym przewodniku zrobisz to przy użyciu okna komunikatu Windows Forms. Najpierw należy dodać odwołanie iImports
instrukcję dla elementu System.Windows.Forms.
Aby dodać system.Windows.Forms
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Odwołania, a następnie w menu skrótów kliknij pozycję Dodaj odwołanie.
W oknie dialogowym Dodawanie odwołania na karcie Przeglądaj wybierz pozycję Przeglądaj i znajdź System.Windows.Forms.DLL.
Bibliotekę DLL można znaleźć w folderze C:\Windows\Microsoft.NET\Framework\v4.0.30319.
Kliknij przycisk OK.
W DebuggerSide.cs dodaj następującą instrukcję do instrukcji
Imports
:Imports System.Windows.Forms
Tworzenie interfejsu użytkownika wizualizatora
Teraz dodasz kod umożliwiający utworzenie i wyświetlenie interfejsu użytkownika dla wizualizatora. Ponieważ jest to pierwszy wizualizator, zachowasz prosty interfejs użytkownika i użyjesz pola komunikatów.
Aby wyświetlić dane wyjściowe wizualizatora w oknie dialogowym
W metodzie
Show
dodaj następujący wiersz kodu:MessageBox.Show(objectProvider.GetObject().ToString())
Ten przykładowy kod nie zawiera obsługi błędów. Należy uwzględnić obsługę błędów w rzeczywistym wizualizatorze lub w dowolnej innej aplikacji.
W menu Kompilacja kliknij pozycję Kompiluj MyFirstVisualizer. Projekt powinien zostać pomyślnie skompilowanych. Przed kontynuowaniem popraw wszelkie błędy kompilacji.
Dodawanie wymaganego atrybutu
To jest koniec kodu po stronie debugera. Istnieje jednak jeszcze jeden krok: atrybut, który informuje stronę debuggee, która kolekcja klas składa się z wizualizatora.
Aby dodać typ do wizualizacji kodu po stronie debugowania
W kodzie po stronie debugera należy określić typ do wizualizacji (źródła obiektu) debuggee przy użyciu atrybutu DebuggerVisualizerAttribute . Właściwość Target
ustawia typ do wizualizacji.
Dodaj następujący kod atrybutu, aby DebuggerSide.vb, po instrukcji
Imports
, ale przednamespace MyFirstVisualizer
:<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
W menu Kompilacja kliknij pozycję Kompiluj MyFirstVisualizer. Projekt powinien zostać pomyślnie skompilowanych. Przed kontynuowaniem popraw wszelkie błędy kompilacji.
Tworzenie uprzęży testowej
Na tym etapie pierwszy wizualizator jest gotowy. Jeśli wykonano kroki prawidłowo, możesz skompilować wizualizator i zainstalować go w programie Visual Studio. Przed zainstalowaniem wizualizatora w programie Visual Studio należy go jednak przetestować, aby upewnić się, że działa prawidłowo. Teraz utworzysz uprzężę testową, aby uruchomić wizualizator bez instalowania go w programie Visual Studio.
Aby dodać metodę testową w celu pokazania wizualizatora
Dodaj następującą metodę do klasy
public DebuggerSide
:Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End Sub
W menu Kompilacja kliknij pozycję Kompiluj MyFirstVisualizer. Projekt powinien zostać pomyślnie skompilowanych. Przed kontynuowaniem popraw wszelkie błędy kompilacji.
Następnie należy utworzyć projekt wykonywalny w celu wywołania biblioteki DLL wizualizatora. Dla uproszczenia użyj projektu aplikacji konsolowej.
Aby dodać projekt aplikacji konsolowej do rozwiązania
W Eksplorator rozwiązań kliknij rozwiązanie prawym przyciskiem myszy, wybierz polecenie Dodaj, a następnie kliknij pozycję Nowy projekt.
W polu Wyszukaj wpisz visual basic, wybierz pozycję Szablony, a następnie wybierz pozycję Utwórz nową aplikację konsolową (.NET Framework). W wyświetlonym oknie dialogowym wybierz pozycję Utwórz.
Wpisz odpowiednią nazwę biblioteki klas, na przykład
MyTestConsole
, a następnie kliknij przycisk Utwórz lub OK.Teraz należy dodać niezbędne odwołania, aby aplikacja MyTestConsole mogła wywołać metodę MyFirstVisualizer.
Aby dodać niezbędne odwołania do myTestConsole
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MyTestConsole, a następnie w menu skrótów kliknij polecenie Dodaj odwołanie.
W oknie dialogowym Dodawanie odwołania na karcie Przeglądaj kliknij pozycję Microsoft.VisualStudio.DebuggerVisualizers.
Kliknij przycisk OK.
Kliknij prawym przyciskiem myszy pozycję MyTestConsole, a następnie ponownie kliknij polecenie Dodaj odwołanie .
W oknie dialogowym Dodawanie odwołania kliknij kartę Projekty, a następnie wybierz pozycję MyFirstVisualizer.
Kliknij przycisk OK.
Kończenie testu uprzężeń i testowanie wizualizatora
Teraz dodasz kod, aby ukończyć uprzężenie testowe.
Aby dodać kod do elementu MyTestConsole
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy Program.vb, a następnie w menu skrótów kliknij polecenie Zmień nazwę.
Zmodyfikuj nazwę z Module1.vb na odpowiednią, na przykład TestConsole.vb.
Zwróć uwagę, że program Visual Studio automatycznie zmienia deklarację klasy w TestConsole.vb, aby pasować do nowej nazwy pliku.
W obszarze TestConsole. vb, dodaj następującą
Imports
instrukcję:Imports MyFirstVisualizer
W metodzie
Main
dodaj następujący kod:Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)
Teraz możesz przystąpić do testowania pierwszego wizualizatora.
Aby przetestować wizualizator
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MyTestConsole, a następnie w menu skrótów kliknij polecenie Ustaw jako projekt startowy.
W menu Debugowanie kliknij przycisk Start.
Zostanie uruchomiona aplikacja konsolowa. Wizualizator zostanie wyświetlony i wyświetli ciąg "Hello, World".
Gratulacje. Właśnie skompilowano i przetestowano pierwszy wizualizator.
Jeśli chcesz użyć wizualizatora w programie Visual Studio, a nie tylko wywołania go z uprzęży testowej, musisz go zainstalować. Aby uzyskać więcej informacji, zobacz How to: Install a Visualizer (Instrukcje: instalowanie wizualizatora).