Condividi tramite


VisualizerObjectSource Classe

Definizione

Fornisce l'accesso all'oggetto visualizzato.
Sottoclasse questa classe per fornire funzionalità personalizzate.

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

Esempio

[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")]  

Commenti

Un visualizzatore è un piccolo programma usato dal debugger di Visual Studio per visualizzare (visualizzare) un oggetto di un tipo di dati specifico in modo significativo. Per visualizzare un oggetto, un visualizzatore usa il codice eseguito nel processo del debugger ( lato debugger) e il codice nel processo di cui viene eseguito il debug ( lato debug).

Il lato debugger e il lato debug comunicano tra loro usando VisualizerObjectSource e IVisualizerObjectProvider.

Il lato debug utilizza per DebuggerVisualizerAttribute specificare un oggetto VisualizerObjectSource per il lato debugger. Il lato debugger ha accesso indirettamente tramite l'interfaccia IVisualizerObjectProvider .

Costruttori

VisualizerObjectSource()

Fornisce l'accesso all'oggetto visualizzato.
Sottoclasse questa classe per fornire funzionalità personalizzate.

Proprietà

IsBinaryFormatterSupported

Restituisce true se il processo di debug in cui è ospitato il visualizzatore supporta la classe Binary Formatter. In caso contrario, le classi che derivano da questa classe devono serializzare i propri oggetti tramite JSON.

SelectedFormatterPolicy

Criteri di formato che questa classe intende utilizzare durante la serializzazione/deserializzazione delle informazioni. Tuttavia, può essere sottoposto a override dal debugger negli scenari in cui i criteri di formato scelti non sono supportati.

Metodi

CreateReplacementObject(Object, Stream)

Crea e restituisce un oggetto sostitutivo per l'oggetto passato in base ai dati serializzati.

Deserialize(Stream)
Obsoleti.

Metodo helper legacy usato dai visualizzatori precedenti che semplifica la scrittura di codice di serializzazione. Usa la serializzazione binaria predefinita per leggere l'oggetto specificato dal flusso. Tuttavia, a causa di vulnerabilità di sicurezza con il relativo utilizzo, non deve più essere usato e genera nelle versioni più recenti di .NET come ASP.NET Core 5.0.

Se viene chiamato in un'app di destinazione che supporta la serializzazione binaria, al termine del metodo il puntatore di lettura del flusso è avanzato oltre i byte dell'oggetto

DeserializeFromJson(Stream, Type, Object)

Deserializza i dati in formato JSON dal flusso specificato in un oggetto di un tipo specifico usando la libreria Newtonsoft.Json.

DeserializeFromJson<T>(Stream, Object)

Deserializza i dati in formato JSON dal flusso specificato in un oggetto di un tipo specifico usando la libreria Newtonsoft.Json.

GetData(Object, Stream)

Ottiene un BLOB di dati. Scrive i dati dall'oggetto nel flusso di memoria.

GetDeserializableObject(Stream)

Metodo helper che può essere usato per ottenere un oggetto deserializzabile per i casi in cui l'app di destinazione potrebbe non supportare la serializzazione binaria. In questi casi il formato sottostante deve essere serializzato usando JSON, quindi i chiamanti possono eseguire query su singole proprietà per determinare il tipo dell'oggetto da deserializzare.

Serialize(Stream, Object)

Serializza l'oggetto specificato in un flusso.

Per impostazione predefinita, gli oggetti verranno serializzati usando la serializzazione binaria tramite .BinaryFormatter Tuttavia, se l'app di destinazione non supporta la serializzazione binaria (come nel caso di ASP.NET Core 5.0+ applicazioni), il metodo serializzerà l'oggetto usando qualsiasi tecnologia di serializzazione JSON disponibile.

La serializzazione binaria non è supportata nei visualizzatori out-of-process. Di conseguenza, questo metodo li serializzerà sempre usando la libreria Newtonsoft.Json.

SerializeAsJson(Stream, Object, Object)

Serializza l'oggetto specificato come JSON in un flusso usando la libreria Newtonsoft.Json.

TransferData(Object, Stream, Stream)

Richiamato quando il tipo di visualizzatore lato interfaccia utente chiama IVisualizerObjectProvider.TransferData(Stream) o IVisualizerObjectProvider.TransferObject(object).

Questo metodo può essere usato per definire un protocollo personalizzato di passaggio di messaggi per comunicare tra i tipi di visualizzatore lato interfaccia utente e debuge-side oppure per richiamare azioni personalizzate sul tipo di visualizzatore lato debug. Il tipo di visualizzatore lato interfaccia utente può passare dati arbitrari serializzati in incomingData e il tipo di visualizzatore lato debug può rispondere con dati arbitrari serializzati in outgoingData.

Si applica a