XamlXmlWriter Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Usa una TextWriter classe di supporto o XmlWriter per scrivere un flusso di nodi XAML in un modulo 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à
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 indicati nella documentazione come Write metodi di un oggetto XamlWriter.
XamlXmlWriter usa diverse classi di stato interne per determinare cosa fare quando viene chiamata una delle relative Write 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 XamlXmlWriter nodo corrente si trova su un valore o all'interno di 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 API non 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. Al contrario, altre Write chiamate, ad esempio WriteStartObject, potrebbero richiedere che la dichiarazione dello spazio dei nomi venga scritta in determinati punti della struttura del nodo. Il writer XAML genera un prefisso in base alla propria logica oppure usa le informazioni del INamespacePrefixLookup servizio per determinare un prefisso preferito. Inoltre, le chiamate esplicite WriteNamespace potrebbero rinviare o non 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 di 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 contenente due nodi consecutivi StartObject , il tentativo di chiamare il secondo WriteStartObject genererà un'eccezione InvalidOperationException. Tutti i writer XAML considerano un'operazione di questo tipo non valida. Un altro esempio di è InvalidOperationException quando le informazioni sullo spazio dei nomi XAML non sono disponibili tramite il contesto dello schema XAML che si applica alla posizione corrente del flusso del nodo.
Un XamlXmlWriterException indica un'eccezione in cui questa particolare implementazione del writer XAML sceglie di generare un'eccezione in base alla funzionalità prevista. Un XamlXmlWriterException può indicare casi specifici in cui un XamlXmlWriter viola il proprio stato o impostazioni. Ad esempio, un XamlXmlWriterException può derivare da 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 scrivono membri duplicati quando l'istanza XamlXmlWriterSettings lo impedisce.
Costruttori
| Nome | Descrizione |
|---|---|
| XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings) |
Inizializza una nuova istanza della XamlXmlWriter classe da un flusso utilizzando un oggetto impostazioni writer. |
| XamlXmlWriter(Stream, XamlSchemaContext) |
Inizializza una nuova istanza della XamlXmlWriter classe da un flusso. |
| XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inizializza una nuova istanza della XamlXmlWriter classe da una TextWriter base utilizzando un oggetto settings. |
| XamlXmlWriter(TextWriter, XamlSchemaContext) |
Inizializza una nuova istanza della XamlXmlWriter classe da una TextWriter base. |
| XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inizializza una nuova istanza della XamlXmlWriter classe da una XmlWriter base utilizzando un oggetto settings. |
| XamlXmlWriter(XmlWriter, XamlSchemaContext) |
Inizializza una nuova istanza della XamlXmlWriter classe da una XmlWriter base. |
Proprietà
| Nome | Descrizione |
|---|---|
| IsDisposed |
Ottiene un valore che indica se è stato chiamato Dispose(Boolean). (Ereditato da XamlWriter) |
| SchemaContext |
Ottiene il contesto dello schema XAML utilizzato XamlXmlWriter per l'elaborazione. |
| Settings |
Ottiene le impostazioni del writer utilizzate XamlXmlWriter per l'elaborazione XAML. |
Metodi
| Nome | Descrizione |
|---|---|
| Close() |
Chiude l'oggetto writer XAML. (Ereditato da XamlWriter) |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da XamlXmlWriter e, facoltativamente, rilascia le risorse gestite. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Flush() |
Chiama il |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| WriteEndMember() |
Scrive un nodo membro finale XAML nell'oggetto sottostante XmlWriter o TextWriter. Genera un'eccezione se la posizione corrente del flusso del nodo XAML non si trova all'interno di un membro o se lo stato del writer interno non supporta la scrittura in un membro finale. |
| WriteEndObject() |
Scrive un nodo dell'oggetto finale XAML nell'oggetto sottostante XmlWriter o TextWriter. Genera un'eccezione se la posizione corrente del flusso del nodo XAML in fase di elaborazione non è compatibile con la scrittura di un oggetto finale. |
| WriteGetObject() |
Scrive un oggetto nei casi in cui l'oggetto specificato è un valore predefinito o implicito della proprietà che viene scritta, anziché essere specificato come valore dell'oggetto nel set di nodi XAML di input. |
| WriteNamespace(NamespaceDeclaration) |
Scrive le informazioni sullo spazio dei nomi nell'oggetto sottostante XmlWriter o TextWriter. Può generare un'eccezione per determinati stati; Tuttavia, può invece rinviare la scrittura delle informazioni sullo spazio dei nomi fino a quando il writer e il flusso del nodo XAML che viene elaborato raggiunge una posizione in cui è possibile inserire una dichiarazione dello spazio dei nomi XAML. |
| WriteNode(XamlReader) |
Esegue il passaggio in base al tipo di nodo dal lettore XAML (NodeType) e chiama il metodo pertinente |
| WriteStartMember(XamlMember) |
Scrive un nodo membro iniziale XAML nell'oggetto sottostante XmlWriter o TextWriter. Genera un'eccezione se la posizione corrente del flusso del nodo XAML si trova all'interno di un altro membro o se non si trova in uno stato di ambito o writer in cui è possibile scrivere un membro iniziale. |
| WriteStartObject(XamlType) |
Scrive un nodo dell'oggetto iniziale XAML nell'oggetto sottostante XmlWriter o TextWriter. Genera un'eccezione se la posizione corrente del flusso di nodi XAML non si trova in un ambito in cui è possibile scrivere un oggetto iniziale o se il writer non è in uno stato in grado di scrivere un oggetto iniziale. |
| WriteValue(Object) |
Scrive un nodo valore XAML nell'oggetto sottostante XmlWriter o TextWriter. Genera un'eccezione se la posizione corrente del flusso del nodo XAML non è valida per la scrittura di un valore o il writer si trova in uno stato in cui non è possibile scrivere un valore. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDisposable.Dispose() |
Vedete Dispose(). (Ereditato da XamlWriter) |