Sdílet prostřednictvím


Visualizer architektura

Architektura visualizer ladicí program má dvě části:

  • Debugger straně běží v rámci ladicího programu Visual Studio.Kód straně ladicí program vytvoří a zobrazí uživatelské rozhraní pro vaše visualizer.

  • Debuggee strana běží v rámci procesu je ladění aplikace Visual Studio ( debuggee).

Debugger součást, která umožňuje zobrazit ladicí program je visualizer (vizualizovat) obsah dat objektu v smysluplné, srozumitelné formě.Některé visualizers podporují také úpravy dat objektu.Psaní vlastního visualizers můžete rozšířit debugger zpracovávat vlastní vlastní datové typy.

Data objektu se detekují se nachází v rámci procesu jsou ladění ( debuggee proces).Vytvoření uživatelského rozhraní, který zobrazí data v rámci procesu ladicí program Visual Studio:

Procesu ladicí program

Debuggee proces

Ladicí program uživatelského rozhraní (QuickWatch DataTips okno kukátka)

Objekt je znázorněn dat

Vizualizace dat objektu v rámci ladicího programu rozhraní je nutné kód ke komunikaci mezi dvěma procesy.Proto visualizer architektura sestává ze dvou částí: debugger straně kód a debuggee strana kód.

Boční ladicí kód vytvoří vlastní uživatelské rozhraní, které lze vyvolat z ladicího programu rozhraní, například DataTip, okno kukátka nebo QuickWatch.Je vytvořeno rozhraní visualizer DialogDebuggerVisualizer třídy a IDialogVisualizerService rozhraní.Jako rozhraní API Visualizer, DialogDebuggerVisualizer a IDialogVisualizerService se nacházejí v Microsoft.VisualStudio.DebuggerVisualizers oboru názvů.

Boční Debugger

Debuggee strana

Třída DialogDebuggerVisualizer

Rozhraní IDialogVisualizerService

Datový objekt

Uživatelské rozhraní získá data detekují od poskytovatele objekt, který existuje na straně ladicí program:

Boční Debugger

Debuggee strana

Třída DialogDebuggerVisualizer

Rozhraní IDialogVisualizerService

Datový objekt

Objekt Provider (implementuje IVisualizerObjectProvider)

Na debuggee straně nazývá zdrojový objekt existuje odpovídající objekt:

Boční Debugger

Debuggee strana

Třída DialogDebuggerVisualizer

Rozhraní IDialogVisualizerService

Datový objekt

Objekt Provider (implementuje IVisualizerObjectProvider)

Zdrojový objekt (odvozené z VisualizerObjectSource)

Objekt Zprostředkovatel poskytuje data objektu, který je znázorněn na visualizer uživatelského rozhraní.Zprostředkovatele objektu získává data objektu ze zdrojového objektu.Zprostředkovatele objektu a objekt zdroje poskytují rozhraní API komunikovat objekt dat mezi debugee strany a strany ladicí program.

Každý visualizer musí získat data objektu lze rovněž zviditelnit.Následující tabulka uvádí odpovídající rozhraní API, že pro tento účel použít zprostředkovatele objektu a objekt zdroje:

Objekt Provider

Zdrojový objekt

GetData

– nebo –

GetObject

GetData

Oznámení poskytovatele objektu můžete použít buď GetData nebo GetObject.Buď API výsledkem volání GetData zdrojového objektu.Volání VisualizerObjectSource.GetData vyplní [System.IO.Stream], která představuje formuláře serializovaném objektu, který je rovněž zviditelnit.

IVisualizerObjectProvider.GetObjectdeserializes data zpět do formuláře objekt, který pak lze zobrazit v uživatelském rozhraní vytvořit s DialogDebuggerVisualizer.IVisualizerObjectProvider.GetDatavyplní údaje, jako surový [System.IO.Stream], které musí rekonstruovat sami.IVisualizerObjectProvider.GetObjectfunguje voláním IVisualizerObjectProvider.GetData získat serializovaném [System.IO.Stream], pak data při rekonstrukci.Použití IVisualizerObjectProvider.GetData Pokud není serializovatelný v objektu.NET a vyžaduje vlastní serializaci.V takovém případě je nutné také přepsat VisualizerObjectSource.Serialize metoda.

Pokud vytváříte visualizer jen pro čtení, jednosměrné komunikaci s GetData nebo GetObject je dostatečná.Pokud vytváříte visualizer, který podporuje úpravy datových objektů, je nutné více.Musíte být také odeslat objekt dat z objektu zprostředkovatele zpět na zdrojový objekt.Následující tabulka uvádí zprostředkovatele objektu a objekt zdroje rozhraní API pro tento účel:

Objekt Provider

Zdrojový objekt

ReplaceData

– nebo –

ReplaceObject

CreateReplacementObject

Všimněte si znovu, že jsou dvě rozhraní API, které můžete použít zprostředkovatele objektu.Data vždy odesílány z objektu zprostředkovatele objektu zdroje jako [System.IO.Stream], ale ReplaceData vyžaduje serializaci objektu do [System.IO.Stream] sami.

ReplaceObjectmá objekt, který zadáte, se řadí do [System.IO.Stream], pak zavolá ReplaceData odeslat [System.IO.Stream] na CreateReplacementObject.

Pomocí jedné z metod nahradit vytvoří nový objekt dat v debuggee, který objekt je znázorněn nahradí.Pokud chcete změnit obsah původního objektu bez jeho nahrazení, použijte jednu z metod převodu uvedené v následující tabulce.Tato rozhraní API přenosu dat v obou směrech současně, bez nahrazení objektu, který je rovněž zviditelnit:

Objekt Provider

Zdrojový objekt

TransferData

– nebo –

TransferObject

TransferData

Viz také

Úkoly

Jak: zápis Visualizer

Názorný postup: Zápis v jazyce C# Visualizer

Názorný postup: Zápis Visualizer v jazyce Visual Basic

Názorný postup: Zápis Visualizer v jazyce Visual Basic

Koncepty

Důležité informace o zabezpečení visualizer