Udostępnij za pośrednictwem


Wskazówki: Pisanie wizualizatora w C#

W tym przewodniku przedstawiono sposób pisania prostych wizualizacji przy użyciu języka C#.Wizualizacji, który zostanie utworzony w tym przewodniku wyświetla zawartość ciągu przy użyciu okna komunikatu formularzy systemu Windows.Prosty wizualizator ciągów znaków nie jest szczególnie przydatny sam w sobie, ale pokazuje podstawowe kroki, które należy wykonać, aby utworzyć bardziej użyteczne wizualizacje dla innych typów danych.

[!UWAGA]

Polecenia menu i okien dialogowych mogą różnić się od tych opisanych w pomocy, w zależności od ustawień aktywnych lub wydania.Aby zmienić swoje ustawienia, wybierz Importuj i eksportuj ustawienia w menu Narzędzia.Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Kod wizualizacji musi być umieszczony w bibliotece DLL, która będzie odczytywana przez debuger.W związku z tym, pierwszym krokiem jest utworzenie projektu biblioteki klas DLL.

W celu utworzenia nowego projektu biblioteki klas

  1. W menu Plik, wybierz Nowy, a następnie kliknij Nowy projekt.

  2. W oknie dialogowym Nowy projekt, w obszarze Typy projektów, wybierz Visual C#.

  3. W polu Szablony wybierz biblioteka klas.

  4. W polu Nazwa wpisz odpowiednią nazwę dla biblioteki klas, np. MyFirstVisualizer.

  5. Kliknij przycisk OK.

Po utworzeniu biblioteki klas, należy dodać odwołanie do Microsoft.VisualStudio.DebuggerVisualizers.DLL, aby można było skorzystać ze zdefiniowanych tam klas.Przed dodaniem odwołania, należy zmienić nazwy niektórych klas tak aby miały jakieś znaczenie.

Aby zmienić nazwę Class1.cs i dodać Microsoft.VisualStudio.DebuggerVisualizers

  1. W Eksploratorze rozwiązania, kliknij prawym przyciskiem myszy Class1.cs i wybierz polecenie Zmiana nazwy w menu skrótów.

  2. Zmień nazwę z Class1.cs na inną opisową, na przykład DebuggerSide.cs.

    [!UWAGA]

    Visual Studio automatycznie zmienia deklarację klasy w DebuggerSide.cs, aby dopasować nową nazwę pliku.

  3. W Eksploratorze rozwiązania kliknij prawym przyciskiem myszy pozycję Odwołania i wybierz polecenie Dodaj odwołanie.

  4. W oknie dialogowym Dodaj odwołanie, na karcie .NET, wybierz Microsoft.VisualStudio.DebuggerVisualizers.DLL.

  5. Kliknij przycisk OK.

  6. W DebuggerSide.cs, należy dodać następującą instrukcję do grupy instrukcji using:

    using Microsoft.VisualStudio.DebuggerVisualizers;
    

Teraz można przystąpić do tworzenia kodu po stronie debugera.Jest to kod uruchamiany w ramach debugera, aby wyświetlić informacje, które mają być zaprezentowane.Po pierwsze, trzeba zmienić deklarację obiektu DebuggerSide, aby dziedziczył z klasy bazowej DialogDebuggerVisualizer.

Aby dziedziczyć po DialogDebuggerVisualizer

  1. W DebuggerSide.cs przejdź do następującej linii kodu:

    public class DebuggerSide
    
  2. Zmień kod na:

    public class DebuggerSide : DialogDebuggerVisualizer
    

DialogDebuggerVisualizer ma jedną metodę abstrakcyjną (Show), którą należy zastąpić.

Aby zastąpić metodę DialogDebuggerVisualizer.Show

  • W public class DebuggerSide, dodaj następującą metodę:

    override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
    {
    }
    

Metoda Show zawiera kod, który faktycznie tworzy okno dialogowe wizualizacji lub innego interfejsu użytkownika i wyświetla informacje, które zostały przekazane do wizualizacji z debugera.Należy dodać kod, który tworzy okno dialogowe i wyświetla informacje.W tym przewodniku, należy skorzystać z okna dialogowego formularzy systemu Windows.Po pierwsze, należy dodać odwołanie oraz instrukcję using do System.Windows.Forms.

Aby dodać System.Windows.Forms

  1. W Eksploratorze rozwiązania kliknij prawym przyciskiem myszy pozycję Odwołania i wybierz polecenie Dodaj odwołanie.

  2. W oknie dialogowym Dodaj odwołanie, na karcie .NET, wybierz System.Windows.Forms.DLL.

  3. Kliknij przycisk OK.

  4. W DebuggerSide.cs, należy dodać następującą instrukcję do grupy instrukcji using:

    using System.Windows.Forms;
    

Teraz należy dodać kod odpowiedzialny za tworzenie i wyświetlanie interfejsu użytkownika dla wizualizacji.Ponieważ jest to Twój pierwszy wizualizator, zachowany zostanie prosty interfejs użytkownika i wykorzystane zostanie okno komunikatu.

Aby pokazać wyjście wizualizatora w oknie dialogowym

  1. W metodzie Show dodaj następujący kod:

    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 prawdziwym wizualizatorze lub jakiejkolwiek innej aplikacji.

  2. W menu Kompilacja wybierz Kompiluj MyFirstVisualizer.Projekt powinien skompilować się pomyślnie.Popraw błędy kompilacji przed kontynuowaniem.

To jest koniec kodu po stronie debugera.Istnieje jeszcze jeden krok; atrybut, który mówi stronie debugowanej z której kolekcji klas składa się wizualizator.

Aby dodać kod po stronie debugowanej

  1. Dodaj następujący kod atrybutu do DebuggerSide.cs, po instrukcji using instrukcji lecz przed namespace MyFirstVisualizer:

    [assembly:System.Diagnostics.DebuggerVisualizer(
    typeof(MyFirstVisualizer.DebuggerSide),
    typeof(VisualizerObjectSource),
    Target  = typeof(System.String),
    Description  = "My First Visualizer")]
    
  2. W menu Kompilacja wybierz Kompiluj MyFirstVisualizer.Projekt powinien skompilować się pomyślnie.Popraw błędy kompilacji przed kontynuowaniem.

W tym momencie wizualizator jest skończony.Jeśli kroki zostały wykonane poprawnie, można skompilować wizualizator i zainstalować go w Visual Studio.Przed zainstalowaniem wizualizatora w Visual Studio, należy przetestować go, aby upewnić się, że działa poprawnie.Należy utworzyć kontroler testów do uruchomienia wizualizatora bez instalowania go w Visual Studio.

Aby dodać testową metodę pokazującą wizualizator

  1. Dodaj następującą metodę do klasy public DebuggerSide:

    public static void TestShowVisualizer(object objectToVisualize)
    {
       VisualizerDevelopmentHost visualizerHost = new VisualizerDevelopmentHost(objectToVisualize, typeof(DebuggerSide));
       visualizerHost.ShowVisualizer();
    }
    
  2. W menu Kompilacja wybierz Kompiluj MyFirstVisualizer.Projekt powinien skompilować się pomyślnie.Popraw błędy kompilacji przed kontynuowaniem.

Następnie należy utworzyć wykonywalny projekt do wywołania biblioteki DLL wizualizatora.Dla uproszczenia będziemy używać projektu aplikacji konsolowej.

Aby dodać projekt aplikacji konsolowej do rozwiązania

  1. W menu Plik wybierz Dodaj a następnie kliknij Nowy projekt ....

  2. W oknie dialogowym Dodaj nowy projekt w polu Szablony wybierz Aplikacja konsolowa.

  3. W polu Nazwa wpisz opisową nazwę dla aplikacji konsolowej, np. MyTestConsole.

  4. Kliknij przycisk OK.

Teraz należy dodać niezbędne odwołania aby MyTestConsole mógł wywołać MyFirstVisualizer.

Aby dodać niezbędne odwołania do MyTestConsole

  1. W Eksploratorze rozwiązania kliknij prawym przyciskiem myszy pozycję MyTestConsole i wybierz polecenie Dodaj odwołanie z menu skrótów.

  2. W oknie dialogowym Dodaj odwołanie, na karcie .NET, wybierz Microsoft.VisualStudio.DebuggerVisualizers.DLL.

  3. Kliknij przycisk OK.

  4. Kliknij prawym przyciskiem myszy MyTestConsole i ponownie wybierz Dodaj odwołanie.

  5. W oknie dialogowym Dodaj odwołanie kliknij kartę Projekty , a następnie kliknij MyFirstVisualizer.

  6. Kliknij przycisk OK.

Teraz należy dodać kod, aby dokończyć kontroler testów.

Aby dodać kod do MyTestConsole

  1. W Eksploratorze rozwiązania, kliknij prawym przyciskiem myszy Program.cs, a następnie wybierz Zmiana nazwy w menu skrótów.

  2. Zmień nazwę z Program.cs na bardziej znaczącą, na przykład TestConsole.cs.

    Uwaga   Visual Studio automatycznie zmienia deklarację klasy w TestConsole.cs, aby pasowała do nowej nazwy pliku.

  3. W TestConsole.cs dodaj następujący kod do instrukcji using:

    using MyFirstVisualizer;
    
  4. Dodaj następujący kod do metody Main:

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

Jesteś teraz gotowy, aby rozpocząć testowanie swojego pierwszego wizualizatora.

Aby przetestować wizualizator

  1. W Eksploratorze rozwiązania, kliknij prawym przyciskiem myszy MyTestConsole i wybierz polecenie ustaw jako projekt startowy z menu skrótów.

  2. Z menu Debugowanie wybierz Start.

    Aplikacja konsolowa uruchomi się i pojawi się wizualizator wyświetlając ciąg "Hello, World."

Gratulacje!Właśnie skompilowałeś i przetestowałeś swój pierwszy wizualizator.

Aby korzystać z wizualizatora w Visual Studio a nie po prostu wywoływać go z kontrolera testów, trzeba go zainstalować.Aby uzyskać więcej informacji, zobacz Porady: instalacja programu Visualizer.

Korzystanie z szablonu elementu wizualizatora

Jak dotąd przewodnik pokazał jak ręcznie utworzyć moduł wizualizacji.Zostało to wykonane w formie ćwiczenia.Teraz, gdy wiesz, jak działa prosty wizualizator, poznaj prostszy sposób jego tworzenia za pomocą szablonu elementu wizualizatora.

Po pierwsze należy utworzyć nowy projekt biblioteki klas.

Aby utworzyć nową bibliotekę klas.

  1. W menu Plik wybierz Dodaj a następnie kliknij Nowy projekt ....

  2. W oknie dialogowym Nowy projekt, w obszarze Typy projektów, wybierz Visual C#.

  3. W polu Szablony wybierz biblioteka klas.

  4. W polu Nazwa wpisz odpowiednią nazwę dla biblioteki klas, np. MySecondVisualizer.

  5. Kliknij przycisk OK.

Teraz można do niej dodać element wizualizatora:

Aby dodać element wizualizatora

  1. W Eksploratorze Rozwiązania, kliknij prawym przyciskiem myszy MySecondVisualizer.

  2. Z menu skrótów wybierz polecenie Dodaj i kliknij Nowy Element.

  3. W oknie dialogowym Dodaj nowy element w podmenu Szablony, Zainstalowane szablony Visual Studio, wybierz opcję Wizualizator debugera.

  4. W polu Nazwa wpisz odpowiednią nazwę, na przykład SecondVisualizer.cs.

  5. Kliknij przycisk Dodaj.

To wszystko na ten temat.Obejrzyj plik SecondVisualizer.cs i wyświetl kod, który został dodany przez szablon.Spróbuj eksperymentować z kodem.Teraz, gdy znasz już podstawy, jesteś na dobrej drodze do samodzielnego stworzenia bardziej skomplikowanego i użytecznego wizualizatora.

Zobacz też

Zadania

Porady: instalacja programu Visualizer

Koncepcje

Architektura wizualizatora

Inne zasoby

Wizualizatory