Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A hibakereső vizualizációk architektúrája két részből áll:
A hibakereső oldal a Visual Studio hibakeresőjén belül fut. A hibakeresőoldali kód létrehozza és megjeleníti a vizualizáció felhasználói felületét.
A hibakeresési oldal a Visual Studio hibakeresési folyamatán belül fut (a hibakeresés).
A vizualizáció egy hibakereső összetevő, amely lehetővé teszi, hogy a hibakereső értelmezhető, érthető formában jelenítse meg (vizualizálja) az adatobjektum tartalmát. Egyes vizualizációk az adatobjektum szerkesztését is támogatják. Egyéni vizualizációk írásával kiterjesztheti a hibakeresőt a saját egyéni adattípusainak kezelésére.
A vizualizálandó adatobjektum a hibakeresési folyamaton (a hibakeresési folyamaton) belül található. Az adatokat megjelenítő felhasználói felület a Visual Studio hibakereső folyamatán belül jön létre:
| Hibakereső folyamat | Hibakeresési folyamat |
|---|---|
| Hibakereső felhasználói felülete (Adattippek, Figyelőablak, Gyorsóra) | Vizualizálandó adatobjektum |
Az adatobjektum hibakereső felületen való megjelenítéséhez kódra van szükség a két folyamat közötti kommunikációhoz. Ennek következtében a vizualizációs architektúra két részből áll: hibakereső oldalkódból és hibakeresési oldalkódból .
A hibakeresőoldali kód létrehozza a saját felhasználói felületét, amely meghívható a hibakereső felületről, például egy adatleírásból, a figyelőablakból vagy a QuickWatch-ból. A vizualizáló felület a DialogDebuggerVisualizer osztály és a IDialogVisualizerService felület használatával jön létre. A Visualizer API-khoz hasonlóan a DialogDebuggerVisualizer és az IDialogVisualizerService is megtalálható a Microsoft.VisualStudio.DebuggerVisualizers névtérben.
| Debugger oldal | Hibakeresési oldal |
|---|---|
| DialogDebuggerVisualizer osztály IDialogVisualizerService Interface |
Adatobjektum |
A felhasználói felület lekéri a vizualizálandó adatokat egy objektumszolgáltatótól, amely a hibakereső oldalán található:
| Hibakereső felület | Hibakeresési oldal |
|---|---|
| DialogDebuggerVisualizer osztály IDialogVisualizerService Interfész |
Adatobjektum |
| Objektumszolgáltató (implementálja IVisualizerObjectProvider) |
A hibakeresési oldalon található egy objektumforrásnak nevezett objektum:
| Hibakereső oldal | Hibakeresési oldal |
|---|---|
| DialogDebuggerVisualizer osztály IDialogVisualizerService Interface |
Adatobjektum |
| Objektumszolgáltató (implementálja IVisualizerObjectProvider) | Az objektum forrása (VisualizerObjectSource alapján származik) |
Az Objektumszolgáltató biztosítja a vizualizáció felhasználói felületén megjelenítendő objektumadatokat. Az objektumszolgáltató lekéri az objektumadatokat az objektumforrásból. Az objektumszolgáltató és az objektumforrás API-kat biztosít az objektumadatok hibakereső és hibakeresési oldal közötti kommunikációjához.
Minden vizualizálónak meg kell szereznie az adatobjektumot a vizualizációhoz. Az alábbi táblázat a megfelelő API-kat mutatja be, amelyeket az objektumszolgáltató és az objektumforrás erre a célra használ:
| Objektumszolgáltató | Objektumforrás |
|---|---|
| GetData — vagy — GetObject |
GetData |
Figyelje meg, hogy az objektumszolgáltató használhatja a GetData-t vagy a GetObject-t. Bármelyik API az Object Source-on belüli GetData hívást eredményez. A Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.GetData hívás kitölt egy System.IO.Stream-t, amely az éppen vizualizált objektum szerializált formáját képviseli.
Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetObject deszerializálja az adatokat objektumformává, amelyet aztán megjeleníthet a létrehozott DialogDebuggerVisualizerfelhasználói felületen.
Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetData tölti ki az adatokat nyersként, amit önnek kell deszerializálnia.
Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetObject úgy működik, hogy meghívja Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetData a szerializált Stream adatok megszerzésére, majd deszerializálja az adatokat. Akkor használható Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider.GetData , ha az objektum nem szerializálható a .NET-ben, és egyéni szerializálást igényel. Ebben az esetben felül kell írnia a Microsoft.VisualStudio.DebuggerVisualizers.VisualizerObjectSource.Serialize metódust is.
Ha írásvédett vizualizációt hoz létre, az GetData vagy GetObject egyirányú kommunikáció elegendő. Ha olyan vizualizációt hoz létre, amely támogatja az adatobjektumok szerkesztését, többet kell tennie. Önnek képesnek kell lennie egy adatobjektumot visszaküldeni az objektumszolgáltatótól az objektumforrásnak is. Az alábbi táblázat az ehhez a célra használt objektumszolgáltatót és objektumforrás API-kat mutatja be:
| Objektumszolgáltató | Objektumforrás |
|---|---|
| ReplaceData — vagy — ReplaceObject |
CreateReplacementObject |
Figyelje meg ismét, hogy az objektumszolgáltató két API-t használhat. A rendszer mindig az objektumszolgáltatótól az objektumforrásnak küld adatokat Stream formában, de ReplaceData megköveteli, hogy az objektumot saját maga szerializálja Stream formátumba.
ReplaceObject egy ön által megadott objektumot vesz fel, szerializálja azt egy Stream-vé, majd meghívja a ReplaceData-t, hogy a Stream-t elküldje a CreateReplacementObject-nek.
A Csere metódusok egyikével létrehoz egy új adatobjektumot a hibakeresésben, amely lecseréli a vizualizált objektumot. Ha lecserélése nélkül szeretné módosítani az eredeti objektum tartalmát, használja az alábbi táblázatban látható átviteli módszerek egyikét. Ezek az API-k egyszerre mindkét irányban továbbítják az adatokat a vizualizáció alatt álló objektum cseréje nélkül:
| Objektumszolgáltató | Objektumforrás |
|---|---|
| TransferData — vagy — TransferObject |
TransferData |