Freigeben über


VisualizerObjectSource Klasse

Definition

Bietet Zugriff auf das objekt, das visualisiert wird.
Unterklasse dieser Klasse, um benutzerdefinierte Funktionen bereitzustellen.

public ref class VisualizerObjectSource
[Windows::Foundation::Metadata::WebHostHidden]
class VisualizerObjectSource
public class VisualizerObjectSource
type VisualizerObjectSource = class
Public Class VisualizerObjectSource
Vererbung
VisualizerObjectSource

Beispiele

[assembly: System.Diagnostics.DebuggerVisualizer(  
   typeof(MyFirstVisualizer.DebuggerSide),  
   // The object source is specified on the next line <<<<<  
   typeof(VisualizerObjectSource),  
   Target = typeof(System.String),  
   Description = "My First Visualizer")]  

Hinweise

Eine Schnellansicht ist ein kleines Programm, mit dem der Visual Studio-Debugger ein Objekt eines bestimmten Datentyps sinnvoll anzeigen (visualisieren) kann. Um ein Objekt zu visualisieren, verwendet eine Schnellansicht Code, der im Debuggerprozess ( auf der Debuggerseite) ausgeführt wird, und Code in dem Prozess, der gedebuggt wird ( debuggee-Seite).

Die Debuggerseite und die Debugseite kommunizieren miteinander, indem sie VisualizerObjectSource und IVisualizerObjectProviderverwenden.

Die Debugseite verwendet das DebuggerVisualizerAttribute , um ein VisualizerObjectSource-Objekt für die Debuggerseite anzugeben. Die Debuggerseite hat indirekt über die IVisualizerObjectProvider -Schnittstelle Zugriff darauf.

Konstruktoren

VisualizerObjectSource()

Bietet Zugriff auf das objekt, das visualisiert wird.
Unterklasse dieser Klasse, um benutzerdefinierte Funktionen bereitzustellen.

Eigenschaften

IsBinaryFormatterSupported

Gibt true zurück, wenn der Debugprozess, in dem die Schnellansicht gehostet wird, die Binary Formatter-Klasse unterstützt. Wenn dies nicht der Fall ist, sollten Klassen, die von dieser Klasse abgeleitet sind, ihre Objekte über JSON serialisieren.

SelectedFormatterPolicy

Die Formatrichtlinie, die diese Klasse beim Serialisieren/Deserialisieren von Informationen verwenden möchte. Sie kann jedoch vom Debugger in Szenarien überschrieben werden, in denen die ausgewählte Formatrichtlinie nicht unterstützt wird.

Methoden

CreateReplacementObject(Object, Stream)

Erstellt ein Ersatzobjekt für das übergebene Objekt basierend auf den serialisierten Daten und gibt es zurück.

Deserialize(Stream)
Veraltet.

Legacyhilfsmethode, die von alten Schnellansichten verwendet wird und das Schreiben von Serialisierungscode erleichtert. Es verwendet standardmäßige binäre Serialisierung, um das angegebene Objekt aus dem Stream zu lesen. Aufgrund von Sicherheitsrisiken bei der Verwendung sollte es jedoch nicht mehr verwendet werden und wird in neueren Versionen von .NET wie ASP.NET Core 5.0 ausgelöst.

Bei Aufruf für eine Ziel-App, die binäre Serialisierung unterstützt, wird nach Abschluss der Methode der Datenstromlesezeiger über die Bytes des Objekts hinaus erweitert.

DeserializeFromJson(Stream, Type, Object)

Deserialisiert die Daten im JSON-Format aus dem angegebenen Stream in ein Objekt eines bestimmten Typs mithilfe der Newtonsoft.Json-Bibliothek.

DeserializeFromJson<T>(Stream, Object)

Deserialisiert die Daten im JSON-Format aus dem angegebenen Stream in ein Objekt eines bestimmten Typs mithilfe der Newtonsoft.Json-Bibliothek.

GetData(Object, Stream)

Ruft ein Blob mit Daten ab. Schreibt Daten aus dem -Objekt in den Memorystream.

GetDeserializableObject(Stream)

Hilfsmethode, die verwendet werden kann, um ein deserialisierbares Objekt für Fälle abzurufen, in denen die Ziel-App die binäre Serialisierung möglicherweise nicht unterstützt. In diesen Fällen sollte das zugrunde liegende Format mithilfe von JSON serialisiert werden, sodass Aufrufer einzelne Eigenschaften abfragen können, um den Typ des Objekts zu bestimmen, das sie deserialisieren möchten.

Serialize(Stream, Object)

Serialisiert das angegebene Objekt in einen Stream.

Standardmäßig werden Objekte mithilfe der binären Serialisierung über serialisiert BinaryFormatter. Wenn die Ziel-App jedoch keine binäre Serialisierung unterstützt (wie bei ASP.NET Core 5.0+-Anwendungen), serialisiert die -Methode das Objekt mithilfe der verfügbaren JSON-Serialisierungstechnologie.

Die binäre Serialisierung wird in Out-of-Prozessschnellansichten nicht unterstützt. Daher serialisiert diese Methode sie immer mithilfe der Newtonsoft.Json-Bibliothek.

SerializeAsJson(Stream, Object, Object)

Serialisiert das angegebene Objekt als JSON-Code in einem Stream mithilfe der Newtonsoft.Json-Bibliothek.

TransferData(Object, Stream, Stream)

Wird aufgerufen, wenn der benutzeroberflächenseitige Schnellansichtstyp IVisualizerObjectProvider.TransferData(Stream) oder IVisualizerObjectProvider.TransferObject(object) aufruft.

Diese Methode kann verwendet werden, um ein benutzerdefiniertes Nachrichtenübergabeprotokoll für die Kommunikation zwischen ui- und debuggee-side Visualizer-Typen zu definieren oder um benutzerdefinierte Aktionen für den debuggee-side visualizer-Typ aufzurufen. Der Benutzeroberflächen-seitige Schnellansichtstyp kann beliebige Daten übergeben, die serialisiert werden incomingData , und der debuggeeseitige Schnellansichtstyp kann mit beliebigen Daten reagieren, die in outgoingDataserialisiert wurden.

Gilt für: