Condividi tramite


Procedura: utilizzare un visualizzatore

Aggiornamento: novembre 2007

Le informazioni contenute in questo argomento sono valide per:

Edition

Visual Basic

C#

C++

Web Developer

Express

Argomento applicabile Argomento applicabile

Solo gestito

Argomento applicabile

Standard

Argomento applicabile Argomento applicabile

Solo gestito

Argomento applicabile

Pro e Team

Argomento applicabile Argomento applicabile

Solo gestito

Argomento applicabile

Legenda tabella:

Argomento applicabile

Applicabile

Argomento non applicabile

Non applicabile

Argomento valido ma comando nascosto per impostazione predefinita

Comando o comandi nascosti per impostazione predefinita.

È possibile scrivere un visualizzatore personalizzato per un oggetto di qualsiasi classe gestita, ad eccezione di Object o Array.

L'architettura di un visualizzatore del debugger è definita da due parti:

  • Il lato debugger viene eseguito all'interno del debugger di Visual Studio. Il codice del lato debugger crea e visualizza l'interfaccia utente del visualizzatore.

  • Il lato oggetto del debug viene eseguito all'interno del processo sottoposto a debug in Visual Studio (l'oggetto del debug).

L'oggetto dati che si desidera visualizzare, ad esempio un oggetto stringa, esiste nel processo dell'oggetto del debug. Di conseguenza, il lato oggetto del debug deve inviare l'oggetto dati al lato debugger, che può quindi visualizzarlo in un'interfaccia utente creata dallo sviluppatore.

Il lato debugger riceve questo oggetto dati da visualizzare da un provider di oggetti, che implementa l'interfaccia IVisualizerObjectProvider. Il lato oggetto del debug invia l'oggetto dati tramite l'origine oggetto, che viene derivata da VisualizerObjectSource. Il provider di oggetti può inoltre inviare nuovamente i dati all'origine oggetto. In tal modo, è possibile scrivere un visualizzatore che modifica e visualizza i dati. Il provider di oggetti può essere sottoposto a override per comunicare con l'analizzatore di espressioni e, di conseguenza, con l'origine oggetto.

Il lato oggetto del debug e il lato debugger comunicano tra loro tramite la classe Stream. Sono disponibili metodi che consentono di serializzare un oggetto dati in un oggetto Stream e deserializzare l'oggetto Stream in un oggetto dati.

Il codice del lato oggetto del debug viene specificato tramite l'attributo DebuggerVisualizer (classe DebuggerVisualizerAttribute).

Per creare l'interfaccia utente del visualizzatore nel lato debugger, è necessario creare una classe che eredita da DialogDebuggerVisualizer ed eseguire l'override del metodo DialogDebuggerVisualizer.Show per visualizzare l'interfaccia.

È possibile utilizzare l'interfaccia IDialogVisualizerService per visualizzare Windows Form, finestre di dialogo e controlli nel visualizzatore.

Il supporto per i tipi generici è limitato. È possibile scrivere un visualizzatore per una destinazione di tipo generico solo quest'ultimo è di tipo aperto. Questa limitazione è identica a quella prevista quando si utilizza l'attributo DebuggerTypeProxy. Per informazioni dettagliate, vedere Utilizzo dell'attributo DebuggerTypeProxy.

Ai visualizzatori personalizzati possono essere associate considerazioni sulla sicurezza. Vedere Considerazioni sulla protezione del visualizzatore.

Per una descrizione dell'architettura del visualizzatore, vedere Architettura del visualizzatore.

Nelle procedure riportate di seguito vengono fornite informazioni generali sulle operazioni da effettuare per creare un visualizzatore. Per ulteriori informazioni, vedere Procedura dettagliata: scrittura di un visualizzatore in C#.

Per creare il lato debugger

  1. Utilizzare metodi IVisualizerObjectProvider per fornire l'oggetto visualizzato al lato debugger.

  2. Creare una classe che eredita da DialogDebuggerVisualizer.

  3. Eseguire l'override del metodo DialogDebuggerVisualizer.Show per visualizzare l'interfaccia. Utilizzare i metodi dell'interfaccia IDialogVisualizerService per visualizzare Windows Form, finestre di dialogo e controlli all'interno dell'interfaccia.

  4. Applicare DebuggerVisualizerAttribute per assegnare un visualizzatore (DialogDebuggerVisualizer).

Per creare il lato oggetto del debug

  1. Applicare DebuggerVisualizerAttribute per assegnare un visualizzatore (DialogDebuggerVisualizer) e un'origine oggetto (VisualizerObjectSource). Se si omette l'origine oggetto, verrà utilizzata un'origine predefinita.

  2. Se si desidera che il visualizzatore sia in grado di modificare oggetti dati oltre a visualizzarli, eseguire l'override del metodo TransferData o CreateReplacementObject della classe VisualizerObjectSource.

Vedere anche

Attività

Procedura: installare un visualizzatore

Procedura: testare un visualizzatore ed eseguirne il debug

Concetti

Architettura del visualizzatore

Considerazioni sulla protezione del visualizzatore

Altre risorse

Visualizzatori