Udostępnij za pośrednictwem


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

  1. 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.

  2. 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

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy Class1.vb, a następnie w menu skrótów kliknij polecenie Zmień nazwę.

  2. 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.

  3. 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.

  4. 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.

  5. Kliknij przycisk OK.

  6. 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 DialogDebuggerVisualizerbazowej .

Aby dziedziczyć z okna DialogoweDebuggerVisualizer

  1. W DebuggerSide.vb przejdź do następującego wiersza kodu:

    Public Class DebuggerSide
    
  2. 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ą , Showktórą należy zastąpić.

Aby zastąpić metodę DialogDebuggerVisualizer.Show

  • W public class DebuggerSidepliku 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 i Imports instrukcję dla elementu System.Windows.Forms.

Aby dodać system.Windows.Forms

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Odwołania, a następnie w menu skrótów kliknij pozycję Dodaj odwołanie.

  2. 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.

  3. Kliknij przycisk OK.

  4. 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

  1. 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.

  2. 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.

  1. Dodaj następujący kod atrybutu, aby DebuggerSide.vb, po instrukcji Imports , ale przed namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. 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

  1. 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
    
  2. 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

  1. 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.

  2. 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

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MyTestConsole, a następnie w menu skrótów kliknij polecenie Dodaj odwołanie.

  2. W oknie dialogowym Dodawanie odwołania na karcie Przeglądaj kliknij pozycję Microsoft.VisualStudio.DebuggerVisualizers.

  3. Kliknij przycisk OK.

  4. Kliknij prawym przyciskiem myszy pozycję MyTestConsole, a następnie ponownie kliknij polecenie Dodaj odwołanie .

  5. W oknie dialogowym Dodawanie odwołania kliknij kartę Projekty, a następnie wybierz pozycję MyFirstVisualizer.

  6. 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

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy Program.vb, a następnie w menu skrótów kliknij polecenie Zmień nazwę.

  2. 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.

  3. W obszarze TestConsole. vb, dodaj następującą Imports instrukcję:

    Imports MyFirstVisualizer
    
  4. W metodzie Maindodaj 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

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MyTestConsole, a następnie w menu skrótów kliknij polecenie Ustaw jako projekt startowy.

  2. 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).