Návod: Zápis vizualizéru v jazyce Visual Basic
Důležité
Počínaje sadou Visual Studio 2022 verze 17.9 je teď možné vizualizéry napsat v .NET 6.0 nebo novějších, které využívají nový model VisualStudio.Extensibility. Autorům vizualizéru doporučujeme odkazovat na novou dokumentaci k vizualizérům ladicího programu sady Visual Studio, pokud nechtějí podporovat starší verze sady Visual Studio nebo chtějí odeslat vlastní vizualizéry jako součást knihovny DLL.
Tento návod ukazuje, jak pomocí jazyka Visual Basic napsat jednoduchý vizualizér. Vizualizér, který vytvoříte v tomto názorném postupu, zobrazí obsah řetězce pomocí pole se zprávou model Windows Forms. Tento jednoduchý vizualizér řetězců je základním příkladem, který ukazuje, jak můžete vytvářet vizualizéry pro jiné datové typy, které jsou pro vaše projekty vhodnější.
Poznámka:
Zobrazené dialogová okna a příkazy nabídek se můžou lišit od těch, které jsou popsané v nápovědě, v závislosti na aktivním nastavení nebo edici. Pokud chcete změnit nastavení, přejděte do nabídky Nástroje a zvolte Importovat a exportovat . Další informace najdete v tématu Resetování nastavení.
Kód vizualizéru musí být umístěn v knihovně DLL, která bude číst ladicí program. Prvním krokem je vytvoření projektu knihovny tříd pro knihovnu DLL.
Vytvoření a příprava projektu knihovny tříd
Vytvoření projektu knihovny tříd
Vytvořte nový projekt knihovny tříd.
Stisknutím klávesy Esc zavřete úvodní okno. Pokud chcete otevřít vyhledávací pole, zadejte visual basic, zvolte Šablony a pak zvolte Vytvořit novou knihovnu tříd (.NET Framework). V zobrazeném dialogovém okně zvolte Vytvořit.
Zadejte odpovídající název knihovny tříd, například
MyFirstVisualizer
, a klepněte na tlačítko Vytvořit nebo OK.Když jste vytvořili knihovnu tříd, musíte přidat odkaz na Microsoft.VisualStudio.DebuggerVisualizers.DLL, abyste mohli použít třídy definované tam. Nejdřív ale projektu pojmenujete smysluplný název.
Přejmenování Class1.vb a přidání microsoft.VisualStudio.DebuggerVisualizers
V Průzkumník řešení klikněte pravým tlačítkem na Class1.vb a v místní nabídce klikněte na Přejmenovat.
Změňte název z Class1.vb na něco smysluplného, například DebuggerSide.vb.
Poznámka:
Visual Studio automaticky změní deklaraci třídy v DebuggerSide.vb tak, aby odpovídala novému názvu souboru.
V Průzkumník řešení klepněte pravým tlačítkem myši na Můj první vizualizér a v místní nabídce klepněte na tlačítko Přidat odkaz.
V dialogovém okně Přidat odkaz na kartě Procházet vyberte Procházet a vyhledejte Microsoft.VisualStudio.DebuggerVisualizers.DLL.
Knihovnu DLL najdete v <instalačním adresáři> sady Visual Studio\Common7\IDE\PublicAssemblies podadresáře instalačního adresáře sady Visual Studio.
Klikněte na OK.
V DebuggerSide.vb přidejte do
Imports
příkazů následující příkaz:Imports Microsoft.VisualStudio.DebuggerVisualizers
Přidání kódu na straně ladicího programu
Teď jste připraveni vytvořit kód na straně ladicího programu. Toto je kód, který se spouští v ladicím programu, aby se zobrazily informace, které chcete vizualizovat. Nejprve musíte změnit deklaraci objektu DebuggerSide
tak, aby dědila ze základní třídy DialogDebuggerVisualizer
.
Dědění z DialogDebuggerVisualizer
V DebuggerSide.vb přejděte na následující řádek kódu:
Public Class DebuggerSide
Upravte kód tak, aby vypadal takto:
Public Class DebuggerSide Inherits DialogDebuggerVisualizer
Poznámka:
DialogDebuggerVisualizer očekává
FormatterPolicy
argument v jeho konstruktoru. Vzhledem k problémům se zabezpečením popsaným v aspektech speciálního ladicího programu pro .NET 5.0+ ale počínaje sadou Visual Studio 2022 verze 17.11 nebudou vizualizéry moct určitLegacy
zásady formátovače.DialogDebuggerVisualizer
má jednu abstraktní metodu,Show
kterou je nutné přepsat.
Přepsání Metody DialogDebuggerVisualizer.Show
Do
public class DebuggerSide
pole přidejte následující metodu:Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider) End Sub
Tato
Show
metoda obsahuje kód, který ve skutečnosti vytvoří dialogové okno vizualizéru nebo jiné uživatelské rozhraní, a zobrazí informace, které byly předány vizualizéru z ladicího programu. Musíte přidat kód, který vytvoří dialogové okno a zobrazí informace. V tomto názorném postupu to provedete pomocí pole model Windows Forms zprávy. Nejprve musíte přidat odkaz aImports
příkaz pro System.Windows.Forms.
Přidání System.Windows.Forms
V Průzkumník řešení klepněte pravým tlačítkem myši na Odkazy a v místní nabídce klepněte na příkaz Přidat odkaz.
V dialogovém okně Přidat odkaz na kartě Procházet vyberte Procházet a vyhledejte System.Windows.Forms.DLL.
Knihovnu DLL najdete v C:\Windows\Microsoft.NET\Framework\v4.0.30319.
Klikněte na OK.
V DebuggerSide.cs přidejte do
Imports
příkazů následující příkaz:Imports System.Windows.Forms
Vytvoření uživatelského rozhraní vizualizéru
Teď přidáte kód pro vytvoření a zobrazení uživatelského rozhraní vizualizéru. Vzhledem k tomu, že toto je váš první vizualizér, uživatelské rozhraní zůstane jednoduché a použijete okno se zprávou.
Zobrazení výstupu vizualizéru v dialogovém okně
Do metody
Show
přidejte následující řádek kódu:MessageBox.Show(objectProvider.GetObject().ToString())
Tento ukázkový kód nezahrnuje zpracování chyb. Zpracování chyb byste měli zahrnout do skutečného vizualizéru nebo jakéhokoli jiného typu aplikace.
V nabídce Sestavení klepněte na tlačítko Sestavit MyFirstVisualizer. Projekt by se měl úspěšně sestavit. Před pokračováním opravte všechny chyby sestavení.
Přidání nezbytného atributu
To je konec kódu na straně ladicího programu. Existuje však ještě jeden krok: atribut, který říká ladicí straně, která kolekce tříd tvoří vizualizér.
Přidání typu pro vizualizaci kódu na straně ladění
V kódu na straně ladicího programu zadáte typ, který chcete vizualizovat (zdroj objektu) pro ladicí program pomocí atributu DebuggerVisualizerAttribute . Vlastnost Target
nastaví typ pro vizualizaci.
Přidejte následující kód atributu do DebuggerSide.vb za
Imports
příkazy, ale přednamespace MyFirstVisualizer
:<Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
V nabídce Sestavení klepněte na tlačítko Sestavit MyFirstVisualizer. Projekt by se měl úspěšně sestavit. Před pokračováním opravte všechny chyby sestavení.
Vytvoření testovacího svazku
V tuto chvíli je dokončen první vizualizér. Pokud jste postupovali správně, můžete vizualizér sestavit a nainstalovat ho do sady Visual Studio. Před instalací vizualizéru do sady Visual Studio byste ho ale měli otestovat, abyste měli jistotu, že běží správně. Teď vytvoříte testovací sadu pro spuštění vizualizéru bez jeho instalace do sady Visual Studio.
Přidání testovací metody pro zobrazení vizualizéru
Do třídy
public DebuggerSide
přidejte následující metodu:Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object) Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide)) visualizerHost.ShowVisualizer() End Sub
V nabídce Sestavení klepněte na tlačítko Sestavit MyFirstVisualizer. Projekt by se měl úspěšně sestavit. Před pokračováním opravte všechny chyby sestavení.
Dále musíte vytvořit spustitelný projekt pro volání knihovny DLL vizualizéru. Pro zjednodušení použijte projekt konzolové aplikace.
Přidání projektu konzolové aplikace do řešení
V Průzkumník řešení klikněte pravým tlačítkem na řešení, zvolte Přidat a potom klikněte na Nový projekt.
Do vyhledávacího pole zadejte visual basic, zvolte Šablony a pak zvolte Vytvořit novou konzolovou aplikaci (.NET Framework). V zobrazeném dialogovém okně zvolte Vytvořit.
Zadejte odpovídající název knihovny tříd, například
MyTestConsole
, a klepněte na tlačítko Vytvořit nebo OK.Teď musíte přidat potřebné odkazy, aby MyTestConsole mohl volat MyFirstVisualizer.
Přidání nezbytných odkazů na MyTestConsole
V Průzkumník řešení klepněte pravým tlačítkem myši MyTestConsole a v místní nabídce klepněte na tlačítko Přidat odkaz.
V dialogovém okně Přidat odkaz na kartě Procházet klikněte na Microsoft.VisualStudio.DebuggerVisualizers.
Klikněte na OK.
Klikněte pravým tlačítkem myši na MyTestConsole a potom znovu klepněte na tlačítko Přidat odkaz .
V dialogovém okně Přidat odkaz klepněte na kartu Projekty a pak vyberte MyFirstVisualizer.
Klikněte na OK.
Dokončení testovacího využití a otestování vizualizéru
Teď přidáte kód pro dokončení testovacího svazku.
Přidání kódu do MyTestConsole
V Průzkumník řešení klikněte pravým tlačítkem na Program.vb a v místní nabídce klikněte na Přejmenovat.
Upravte název z Module1.vb na něco vhodného, například TestConsole.vb.
Všimněte si, že Visual Studio automaticky změní deklaraci třídy v TestConsole.vb tak, aby odpovídala novému názvu souboru.
V TestConsole. vb, přidejte následující
Imports
příkaz:Imports MyFirstVisualizer
V metodě
Main
přidejte následující kód:Dim myString As String = "Hello, World" DebuggerSide.TestShowVisualizer(myString)
Teď jste připraveni otestovat svůj první vizualizér.
Otestování vizualizéru
V Průzkumník řešení klepněte pravým tlačítkem myši MyTestConsole a v místní nabídce klepněte na příkaz Nastavit jako spouštěný projekt.
V nabídce Ladění klepněte na tlačítko Start.
Spustí se konzolová aplikace. Zobrazí se vizualizér a zobrazí řetězec "Hello, World".
Blahopřejeme. Právě jste vytvořili a otestovali svůj první vizualizér.
Pokud chcete použít vizualizér v sadě Visual Studio místo pouhého volání z testovacího svazku, musíte ho nainstalovat. Další informace naleznete v tématu Postupy: Instalace vizualizéru.