XamlXmlWriter Classe

Definizione

Utilizza una classe di supporto TextWriter o XmlWriter per scrivere un flusso del nodo XAML in un formato serializzato di testo o markup.

public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
    inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
Ereditarietà
XamlXmlWriter

Commenti

Questa classe viene in genere usata negli scenari di serializzazione.

Come usare XamlXmlWriter

L'API XamlWriter include diversi metodi che scrivono diversi tipi di nodi XAML. Collettivamente, questi vengono definiti nella documentazione come metodi Write di un XamlWriteroggetto . XamlXmlWriter usa diverse classi di stato interne per determinare cosa fare quando viene chiamata una delle Write relative implementazioni. Una Write chiamata usa gli stati per determinare se l'elemento, l'attributo o il valore richiesti possono essere scritti o se viene generata un'eccezione. Ad esempio, se si chiama WriteEndObject e lo stato della posizione del nodo corrente è su un valore o all'interno di XamlXmlWriter un membro, viene generata un'eccezione. In genere, i chiamanti dell'API XamlXmlWriter devono essere consapevoli del tipo del nodo XAML corrente proveniente dal lettore XAML e dal flusso del nodo XAML. In base a questa conoscenza, i chiamanti devono evitare di chiamare Write le API che non sono rilevanti per il tipo di nodo corrente.

Spazi dei nomi XAML e XamlXmlWriter

Il comportamento di scrittura dello spazio dei nomi XAML di XamlXmlWriter è complesso e non è limitato alle chiamate esplicite a WriteNamespace. Write Altre chiamate, ad esempio WriteStartObject, potrebbero richiedere che la dichiarazione dello spazio dei nomi venga scritta in punti specifici nella struttura del nodo. Il writer XAML genera un prefisso in base alla propria logica oppure usa le informazioni dal INamespacePrefixLookup servizio per determinare un prefisso preferito. Inoltre, le chiamate esplicite WriteNamespace potrebbero rinviare o restituire nulla se la dichiarazione dello spazio dei nomi XAML è già applicabile e dichiarata altrove.

Eccezioni del metodo write

Le eccezioni generate dai XamlXmlWriterWrite metodi sono in InvalidOperationException genere o XamlXmlWriterException.

Spesso InvalidOperationException indica che un lettore XAML ha passato una struttura di nodo non valida nel flusso del nodo XAML. In questo caso la struttura del nodo non è valida per motivi non correlati alla convalida di uno schema XAML o a un contesto dello schema XAML. Invece, il flusso del nodo non è valido nel formato di base. Ad esempio, se un'implementazione del lettore XAML difettosa ha generato un flusso di nodi XAML che contiene due nodi consecutivi StartObject , il tentativo di chiamare il secondo WriteStartObject genererebbe un InvalidOperationExceptionoggetto . Tutti i writer XAML considerano tale operazione non valida. Un altro esempio di un InvalidOperationException oggetto è quando le informazioni sullo spazio dei nomi XAML non sono disponibili tramite il contesto dello schema XAML che si applica alla posizione del flusso del nodo corrente.

Un XamlXmlWriterException indica un'eccezione in cui questa particolare implementazione del writer XAML sceglie di generare un'eccezione in base alla relativa funzionalità prevista. Un XamlXmlWriterException può indicare casi specifici in cui un XamlXmlWriter viola lo stato o le impostazioni. Ad esempio, un XamlXmlWriterException può causare tentativi di scrivere informazioni sullo spazio dei nomi XAML in una posizione che il XamlXmlWriter formato di serializzazione e il relativo formato di serializzazione non supportano o scrivere membri duplicati quando l'istanza lo XamlXmlWriterSettings impedisce.

Costruttori

XamlXmlWriter(Stream, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlXmlWriter da un flusso.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Inizializza una nuova istanza della classe XamlXmlWriter da un flusso utilizzando un oggetto impostazioni del writer.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlXmlWriter sulla base di un oggetto TextWriter.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inizializza una nuova istanza della classe XamlXmlWriter sulla base di un oggetto TextWriter utilizzando un oggetto impostazioni.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Inizializza una nuova istanza della classe XamlXmlWriter sulla base di un oggetto XmlWriter.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inizializza una nuova istanza della classe XamlXmlWriter sulla base di un oggetto XmlWriter utilizzando un oggetto impostazioni.

Proprietà

IsDisposed

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

(Ereditato da XamlWriter)
SchemaContext

Ottiene il contesto dello schema XAML utilizzato dall'oggetto XamlXmlWriter per l'elaborazione.

Settings

Ottiene le impostazioni del writer utilizzate dall'oggetto XamlXmlWriter per l'elaborazione XAML.

Metodi

Close()

Chiude l'oggetto writer XAML.

(Ereditato da XamlWriter)
Dispose(Boolean)

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

Equals(Object)

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

(Ereditato da Object)
Flush()

Chiama il metodo Flush dell'oggetto XmlWriter o TextWriter sottostante che scrive tutti gli elementi attualmente presenti nel buffer chiudendo poi il writer.

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)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
WriteEndMember()

Scrive un nodo membro XAML finale nell'oggetto XmlWriter o TextWriter sottostante. Genera un'eccezione se la posizione corrente del flusso del nodo XAML non è all'interno di un membro o se lo stato del writer interno non supporta la scrittura di un membro finale.

WriteEndObject()

Scrive un nodo oggetto XAML finale nell'oggetto XmlWriter o TextWriter sottostante. Genera un'eccezione se la posizione corrente del flusso del nodo XAML in elaborazione è incompatibile con la scrittura di un oggetto finale.

WriteGetObject()

Scrive un oggetto per i casi in cui l'oggetto specificato è un valore predefinito o implicito della proprietà da scrivere, anziché un valore da specificare come valore dell'oggetto nel set di nodi XAML di input.

WriteNamespace(NamespaceDeclaration)

Scrive le informazioni sugli spazi dei nomi nell'oggetto XmlWriter o TextWriter sottostante. Potrebbe generare un'eccezione per specifici stati, tuttavia può rinviare la scrittura delle informazioni sullo spazio dei nomi finché il writer e il flusso del nodo XAML in elaborazione non raggiunge una posizione in cui sia possibile inserire la dichiarazione di uno spazio dei nomi XAML.

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 nodo membro XAML iniziale nell'oggetto XmlWriter o TextWriter sottostante. Genera un'eccezione se la posizione corrente del flusso del nodo XAML è all'interno di un altro membro o non è in uno stato dell'ambito o del writer che consente la scrittura di un membro iniziale.

WriteStartObject(XamlType)

Scrive un nodo oggetto XAML iniziale nell'oggetto XmlWriter o TextWriter sottostante. Genera un'eccezione se la posizione corrente del flusso del nodo XAML non è in un ambito in cui sia possibile scrivere un oggetto iniziale e se il writer non è in uno stato che consente la scrittura di un oggetto iniziale.

WriteValue(Object)

Scrive un nodo valore XAML nell'oggetto XmlWriter o TextWriter sottostante. Genera un'eccezione se la posizione corrente del flusso del nodo XAML non è valida la scrittura di un valore e se lo stato del writer non supporta la scrittura di un valore.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Vedere Dispose().

(Ereditato da XamlWriter)

Si applica a

Vedi anche