Condividi tramite


XamlObjectWriter Classe

Definizione

Crea un oggetto grafico da un flusso del nodo XAML di origine.

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
Ereditarietà
XamlObjectWriter
Implementazioni

Commenti

I Write metodi di XamlObjectWriter implementare un modello in modo che l'oggetto XamlObjectWriter usi l'oggetto WriteNodeXamlWriter definito dal metodo . WriteNode la logica passa tra i Write metodi, a seconda del tipo di nodo in corrispondenza della posizione corrente nel lettore.

Ambito

Un XamlObjectWriter oggetto ha un concetto di ambito, XamlObjectWriter ovvero mantiene un punto concettuale di riferimento nel relativo grafico a oggetti di output. Per un particolare ambito, alcune operazioni potrebbero essere valide o non valide o produrre un risultato di nessuna operazione. Ad esempio, se si chiamano WriteStartMember direttive di scrittura per l'inizializzazione in un oggetto già esistente come istanza, l'implementazione predefinita genera un'eccezione.

Una tecnica possibile per il rilevamento dell'ambito in un oggetto personalizzato XamlObjectWriter consiste nell'allineare le azioni del nodo a una classe stack o frame. Lo stack o il frame possono tenere traccia del push e del pop per ogni livello di profondità del modello a oggetti immesso o chiuso mentre scrive XamlObjectWriter il grafico degli oggetti.

Callback

Per supportare scenari intermedi e avanzati XamlObjectWriter , il meccanismo di scrittura di un grafico a oggetti fornisce punti di ingresso di callback che si verificano quando un XamlObjectWriter commit o sta per eseguire il commit di determinate azioni. Alcuni callback sono abilitati nelle impostazioni e non sono specifici del tipo di oggetto o del membro scritto; tuttavia, le informazioni di callback sono spesso disponibili nel contesto o si trovano nei dati dell'evento inviati tramite il callback. Di seguito è riportato un elenco di callback pertinenti:

  • Il callback dichiarato da AfterBeginInitHandler viene richiamato quando l'ambito passa a un nuovo oggetto e alla BeginInit fase di durata dell'oggetto per ogni oggetto creato.

  • Il callback dichiarato da AfterEndInitHandler viene richiamato quando l'ambito passa a un nuovo oggetto e alla EndInit fase di durata dell'oggetto per ogni oggetto creato.

  • Il callback dichiarato da BeforePropertiesHandler viene richiamato quando l'ambito viene avviato in un oggetto e si verifica quando viene eseguita la prima WriteStartMember chiamata all'ambito dell'oggetto ma non ancora eseguito il commit.

  • Il callback dichiarato da AfterPropertiesHandler viene richiamato quando l'ambito viene avviato in un oggetto e si verifica quando viene eseguita la chiamata all'ambito dell'oggetto ma non ancora eseguito il WriteEndObject commit.

  • Il callback dichiarato da XamlSetValueHandler viene richiamato quando OnSetValue viene chiamato.

Scrittura delle chiavi del dizionario

L'implementazione predefinita di supporta la conversione dei tipi nei vincoli di XamlObjectWriter un Dictionary<TKey,TValue> oggetto prima che il contenuto del dizionario venga aggiunto al grafico degli oggetti. In questo modo, un dizionario generico può essere chiaveto in fase di esecuzione da oggetti e può corrispondere al comportamento di generico Add e indicizzatore pertinente. Tuttavia, come implementato per la base , questa funzionalità esiste solo per la creazione del grafico a oggetti dalla classe di base XamlObjectWriterDictionary<TKey,TValue> e non per le classi derivate di Dictionary<TKey,TValue>.

Verifica la presenza di controlli eliminati

I writer XAML sono potenzialmente usati per operazioni posticipate o in cui viene eseguita una chiamata a un'istanza del writer XAML eliminata nel frattempo. Varie API di XamlObjectWriter potrebbero generare ObjectDisposedException in questi casi.

Costruttori

XamlObjectWriter(XamlSchemaContext)

Inizializza una nuova istanza della classe usando il contesto dello XamlObjectWriter schema XAML usato da un XamlReaderoggetto .

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inizializza una nuova istanza della classe XamlObjectWriter utilizzando il contesto che è utilizzato da un oggetto XamlReader e le relative impostazioni.

Proprietà

IsDisposed

Ottiene un valore che indica se Dispose(Boolean) è stato chiamato.

(Ereditato da XamlWriter)
Result

Ottiene l'ultimo oggetto scritto. In genere viene chiamato solo quando il flusso del nodo è alla fine e l'oggetto grafico è stato completato.

RootNameScope

Ottiene il servizio INameScope che gestisce il NameScope XAML per la radice del nodo corrente del writer di oggetti XAML.

SchemaContext

Ottiene il contesto dello schema XAML attivo.

ShouldProvideLineInfo

Ottiene un valore che segnala se un servizio di informazioni sulla riga deve fornire i valori e di conseguenza chiamare anche il metodo SetLineInfo(Int32, Int32), quando necessario.

Metodi

Clear()

Reimposta tutti i possibili frame e cancella l'oggetto grafico.

Close()

Chiude l'oggetto writer XAML.

(Ereditato da XamlWriter)
Dispose(Boolean)

Rilascia le risorse non gestite utilizzate dall'oggetto XamlObjectWriter e facoltativamente rilascia le risorse gestite.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnAfterBeginInit(Object)

Richiama qualsiasi metodo AfterBeginInitHandler associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.

OnAfterEndInit(Object)

Richiama qualsiasi metodo AfterEndInitHandler associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.

OnAfterProperties(Object)

Richiama qualsiasi metodo AfterPropertiesHandler a cui viene fatto riferimento che è associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.

OnBeforeProperties(Object)

Richiama qualsiasi metodo BeforePropertiesHandler a cui viene fatto riferimento che è associato all'oggetto XamlObjectWriterSettings per XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Richiama qualsiasi metodo XamlSetValueHandler a cui viene fatto riferimento che è associato all'oggetto XamlObjectWriterSettings per questo writer, a condizione che handled nei dati dell'evento XamlSetValueEventArgs non sia true.

SetLineInfo(Int32, Int32)

Implementa SetLineInfo(Int32, Int32) e fornisce le informazioni sulla riga per le eccezioni.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WriteEndMember()

Chiude l'ambito del membro corrente e può scrivere il valore dell'ambito del membro mentre viene chiuso. Il nuovo ambito diventa l'ambito dell'oggetto padre del membro.

WriteEndObject()

Chiude l'ambito dell'oggetto corrente nel writer. Il nuovo ambito dell'oggetto diventa l'ambito del membro padre.

WriteGetObject()

Scrive l'oggetto StartObject concettuale nell'oggetto grafico quando l'oggetto specificato è un valore predefinito o implicito della proprietà padre. Il valore implicito viene da informazioni ottenute dal contesto dello schema XAML e da informazioni sul tipo di supporto, anziché essere specificato come valore dell'oggetto nel set di nodi XAML di input.

WriteNamespace(NamespaceDeclaration)

Definisce una dichiarazione dello spazio dei nomi che si applica all'ambito dell'oggetto o all'ambito del membro successivo.

WriteNode(XamlReader)

Esegue il passaggio in base al tipo di nodo dal reader XAML (NodeType) e chiama il metodo Write pertinente per l'implementazione del writer.

(Ereditato da XamlWriter)
WriteStartMember(XamlMember)

Scrive un nuovo nodo membro nell'ambito dell'oggetto corrente e l'ambito diventa un nuovo ambito del membro.

WriteStartObject(XamlType)

Scrive un nodo oggetto nell'ambito corrente e imposta l'ambito su un nuovo ambito dell'oggetto.

WriteValue(Object)

Scrive un valore nell'ambito del membro corrente. Se l'ambito corrente è all'interno di un oggetto insieme, dizionario o matrice, il valore deve essere aggiunto nell'insieme, nel dizionario o nella matrice.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Vedere Dispose().

(Ereditato da XamlWriter)

Si applica a

Vedi anche