Gewusst wie: Schreiben einer Schnellansicht
Aktualisiert: November 2007
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
Nur verwaltet |
|||
Standard |
Nur verwaltet |
|||
Pro und Team |
Nur verwaltet |
Tabellenlegende:
Vorhanden |
|
Nicht vorhanden |
|
Befehl oder Befehle, die standardmäßig ausgeblendet sind. |
Sie können für ein Objekt einer beliebigen verwalteten Klasse eine benutzerdefinierte Schnellansicht schreiben. Ausnahmen stellen Object und Array dar.
Die Architektur einer Debuggerschnellansicht besteht aus zwei Teilen:
Die Debuggerseite wird innerhalb des Visual Studio-Debuggers ausgeführt. Im debuggerseitigen Code wird die Benutzeroberfläche für die Schnellansicht erstellt und angezeigt.
Die zu debuggende Seite wird innerhalb des Prozesses ausgeführt, den Visual Studio debuggt (die zu debuggende Komponente).
Das Datenobjekt, das Sie visuell darstellen möchten (z. B. ein Zeichenfolgenobjekt), ist im zu debuggenden Prozess vorhanden. Die zu debuggende Seite muss dieses Datenobjekt zur Debuggerseite senden, die dieses Objekt dann über die erstellte Benutzeroberfläche anzeigen kann.
Die Debuggerseite empfängt dieses Datenobjekt, das von einem Objektanbieter visuell dargestellt wird, der die IVisualizerObjectProvider-Oberfläche implementiert. Die zu debuggende Seite sendet das Datenobjekt mithilfe der Objektquelle, die von VisualizerObjectSource abgeleitet ist. Der Objektanbieter kann auch Daten an die Objektquelle zurücksenden. Dadurch können Sie eine Schnellansicht schreiben, die Daten bearbeitet und anzeigt. Der Objektanbieter kann überschrieben werden, um mit der Ausdrucksauswertung und somit der Objektquelle zu kommunizieren.
Die zu debuggende Seite und die Debuggerseite kommunizieren durch Stream miteinander. Es werden Methoden bereitgestellt für die Serialisierung eines Datenobjekts in einen Stream und für die Deserialisierung eines Stream zurück in ein Datenobjekt.
Der Code der zu debuggenden Seite wird mit dem DebuggerVisualizer-Attribut (DebuggerVisualizerAttribute) angegeben.
Um die Benutzeroberfläche der Schnellansicht auf Debuggerseite zu erstellen, müssen Sie eine Klasse erstellen, die von DialogDebuggerVisualizer erbt und die DialogDebuggerVisualizer.Show-Methode zum Anzeigen der Oberfläche überschreibt.
Sie können mit IDialogVisualizerService Windows Forms, Dialogfelder und Steuerelemente über die Schnellansicht anzeigen lassen.
Die Unterstützung für generische Typen ist eingeschränkt. Sie können für ein Zielobjekt eines generischen Typs nur dann eine Schnellansicht schreiben, wenn es sich bei dem generischen Typ um einen offenen Typ handelt. Diese Einschränkung entspricht der Einschränkung bei Verwendung des DebuggerTypeProxy-Attributs. Ausführliche Informationen finden Sie unter Verwenden des DebuggerTypeProxy-Attributs.
In benutzerdefinierten Schnellansichten treten möglicherweise Sicherheitsprobleme auf. Weitere Informationen finden Sie unter Sicherheitsüberlegungen zu Schnellansichten.
Die folgenden Verfahren vermitteln Ihnen einen allgemeinen Überblick darüber, welche Schritte zum Erstellen einer Schnellansicht erforderlich sind. Eine ausführlichere Erklärung finden Sie unter Exemplarische Vorgehensweise: Schreiben einer Schnellansicht in C#.
So erstellen Sie die Debuggerseite
Verwenden Sie IVisualizerObjectProvider-Methoden, damit das visuell dargestellte Objekt auf der Debuggerseite ist.
Erstellen Sie eine Klasse, die von DialogDebuggerVisualizer erbt.
Überschreiben Sie die DialogDebuggerVisualizer.Show-Methode, um die Oberfläche anzuzeigen. Mit IDialogVisualizerService-Methoden können Sie Windows Forms, Dialogfelder und Steuerelemente als Teil der Oberfläche anzeigen.
Übernehmen Sie DebuggerVisualizerAttribute, indem Sie diesem Attribut eine Schnellansicht (DialogDebuggerVisualizer) zuweisen.
So erstellen Sie die gedebuggte Seite
Übernehmen Sie DebuggerVisualizerAttribute, indem Sie diesem Attribut eine Schnellansicht (DialogDebuggerVisualizer) und eine Objektquelle (VisualizerObjectSource) zuweisen. Wenn Sie die Objektquelle weglassen, wird eine Standardobjektquelle verwendet.
Wenn Sie möchten, dass die Schnellansicht Datenobjekte sowohl bearbeiten als auch anzeigen kann, müssen Sie die TransferData-Methode oder die CreateReplacementObject-Methode aus VisualizerObjectSource überschreiben.
Siehe auch
Aufgaben
Gewusst wie: Installieren einer Schnellansicht
Gewusst wie: Testen und Debuggen einer Schnellansicht
Konzepte
Sicherheitsüberlegungen zu Schnellansichten