XamlXmlWriter Klasse

Definition

Verwendet eine TextWriter-Hilfsklasse oder eine XmlWriter-Hilfsklasse, um einen XAML-Knotenstream in ein mit Text oder Markup serialisiertes Formular zu schreiben.

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

Hinweise

Diese Klasse wird in der Regel in Serialisierungsszenarien verwendet.

Verwenden von XamlXmlWriter

Die XamlWriter API verfügt über mehrere Methoden, die verschiedene Typen von XAML-Knoten schreiben. Zusammen werden diese in der Dokumentation als Write Methoden einer XamlWriter. XamlXmlWriter Verwendet mehrere interne Zustandsklassen, um zu bestimmen, was zu tun ist, wenn eine der Write Implementierungen aufgerufen wird. Ein Write Aufruf verwendet die Zustände, um zu bestimmen, ob das angeforderte Element, das Attribut oder der Wert geschrieben werden kann oder ob eine Ausnahme ausgelöst wird. Wenn Sie z. B. aufrufen WriteEndObject und der Status der XamlXmlWriter aktuellen Knotenposition auf einem Wert oder innerhalb eines Elements liegt, wird eine Ausnahme ausgelöst. In der Regel sollten Aufrufer der XamlXmlWriter API den Typ des aktuellen XAML-Knotens kennen, der aus dem XAML-Reader und dem XAML-Knotendatenstrom stammt. Basierend auf diesem Wissen sollten Anrufer das Aufrufen von Write APIs vermeiden, die für den aktuellen Knotentyp nicht relevant sind.

XAML-Namespaces und XamlXmlWriter

Das Schreibverhalten des XamlXmlWriter XAML-Namespaces ist komplex und ist nicht auf explizite Aufrufe beschränkt WriteNamespace. Stattdessen müssen andere Write Aufrufe wie z WriteStartObject. B. die Namespacedeklaration an bestimmten Punkten in der Knotenstruktur geschrieben werden. Der XAML-Writer generiert entweder ein Präfix anhand einer eigenen Logik oder verwendet Informationen vom INamespacePrefixLookup Dienst, um ein bevorzugtes Präfix zu bestimmen. Außerdem können explizite WriteNamespace Aufrufe nichts zurückstellen oder zurückgeben, wenn die XAML-Namespacedeklaration bereits anwendbar und an anderer Stelle deklariert ist.

Write-Methoden-Ausnahmen

Ausnahmen, die von den Methoden ausgelöst werden, sind in der XamlXmlWriter Write Regel entweder InvalidOperationException oder XamlXmlWriterException.

Häufig InvalidOperationException wird angegeben, dass ein XAML-Reader eine ungültige Knotenstruktur an den XAML-Knotendatenstrom übergeben hat. In diesem Fall ist die Knotenstruktur aus Gründen ungültig, die nicht mit der Überprüfung eines XAML-Schemas oder einem XAML-Schemakontext zusammenhängen. Stattdessen ist der Knotendatenstrom in seiner grundlegenden Form ungültig. Wenn beispielsweise eine fehlerhafte XAML-Readerimplementierung einen XAML-Knotenstrom generiert hat, der zwei aufeinander folgende StartObject Knoten enthält, würde der Versuch, den zweiten WriteStartObject aufrufen, einen InvalidOperationException. Alle XAML-Autoren würden einen solchen Vorgang als ungültig betrachten. Ein weiteres Beispiel dafür InvalidOperationException ist, dass XAML-Namespaceinformationen über den XAML-Schemakontext nicht verfügbar sind, der für die aktuelle Knotendatenstromposition gilt.

A XamlXmlWriterException gibt eine Ausnahme an, bei der diese bestimmte XAML-Writer-Implementierung eine Ausnahme basierend auf der beabsichtigten Funktionalität auslöst. Eine XamlXmlWriterException kann bestimmte Fälle angeben, in denen ein XamlXmlWriter eigenes Zustands- oder Einstellungsstatus verletzt. Beispielsweise kann ein XamlXmlWriterException Ergebnis aus versuchen, XAML-Namespaceinformationen an eine Position zu schreiben, die das XamlXmlWriter Serialisierungsformat nicht unterstützt, oder duplizierte Member schreiben, wenn die Instanz XamlXmlWriterSettings sie verbietet.

Konstruktoren

XamlXmlWriter(Stream, XamlSchemaContext)

Initialisiert eine neue Instanz der XamlXmlWriter-Klasse aus einem Datenstrom.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Initialisiert eine neue Instanz der XamlXmlWriter-Klasse aus einem Datenstrom mithilfe eines Writer-Einstellungsobjekts.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Initialisiert eine neue Instanz der XamlXmlWriter-Klasse aus einer TextWriter-Basis.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Initialisiert eine neue Instanz der XamlXmlWriter-Klasse aus einer TextWriter-Basis mithilfe eines Einstellungsobjekts.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Initialisiert eine neue Instanz der XamlXmlWriter-Klasse aus einer XmlWriter-Basis.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Initialisiert eine neue Instanz der XamlXmlWriter-Klasse aus einer XmlWriter-Basis mithilfe eines Einstellungsobjekts.

Eigenschaften

IsDisposed

Ruft ab, ob die Dispose(Boolean)-Methode aufgerufen wurde.

(Geerbt von XamlWriter)
SchemaContext

Ruft den XAML-Schemakontext ab, der von der XamlXmlWriter-Klasse zur Verarbeitung verwendet wird.

Settings

Ruft die Writereinstellungen ab, die von der XamlXmlWriter-Klasse zur XAML-Verarbeitung verwendet werden.

Methoden

Close()

Schließt das XAML-Writerobjekt.

(Geerbt von XamlWriter)
Dispose(Boolean)

Gibt die von der XamlXmlWriter-Klasse verwendeten nicht verwalteten Ressourcen und optional auch die verwalteten Ressourcen frei.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Flush()

Ruft die Flush-Methode der zugrunde liegenden XmlWriter- oder TextWriter-Klasse auf, die alle derzeit im Puffer enthaltenen Elemente schreibt und den Writer anschließend schließt.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WriteEndMember()

Schreibt einen XAML-Endmemberknoten in die zugrunde liegende XmlWriter- oder TextWriter-Klasse. Löst eine Ausnahme aus, wenn die aktuelle Position des XAML-Knotendatenstroms nicht innerhalb eines Members liegt oder wenn der interne Zustand des Writers nicht das Schreiben in Endmember unterstützt.

WriteEndObject()

Schreibt einen XAML-Endobjektknoten in die zugrunde liegende XmlWriter- oder TextWriter-Klasse. Löst eine Ausnahme aus, wenn die aktuelle Position des XAML-Knotenstreams, die verarbeitet wird, nicht mit dem Schreiben eines Endobjekts kompatibel ist.

WriteGetObject()

Schreibt ein Objekt für Fälle, in denen das angegebene Objekt ein standardmäßiger oder impliziter Wert der geschriebenen Eigenschaft ist. Das Objekt wird nicht als Objektwert in der Eingabe-XAML-Knotengruppe angegeben.

WriteNamespace(NamespaceDeclaration)

Schreibt Namespaceinformationen in die zugrunde liegende XmlWriter- oder TextWriter-Klasse. Löst möglicherweise eine Ausnahme für bestimmte Zustände aus. Darf jedoch stattdessen das Schreiben der Namespaceinformationen verzögern, bis der verarbeitete Writer und XAML-Knotenstream eine Position erreicht, an der eine XAML-Namespacedeklaration eingefügt werden kann.

WriteNode(XamlReader)

Führt eine Umschaltung auf Grundlage des Knotentyps des XAML-Readers aus (NodeType) und ruft die relevante Write-Methode für die Writerimplementierung auf.

(Geerbt von XamlWriter)
WriteStartMember(XamlMember)

Schreibt einen XAML-Startmemberknoten in die zugrunde liegende XmlWriter- oder TextWriter-Klasse. Löst eine Ausnahme aus, wenn sich die aktuelle Position des XAML-Knotendatenstroms innerhalb eines anderen Members befindet oder andernfalls nicht in einem Bereich oder Zustand des Writers, in dem ein Startmember geschrieben werden kann.

WriteStartObject(XamlType)

Schreibt einen XAML-Startobjektknoten in die zugrunde liegende XmlWriter- oder TextWriter-Klasse. Löst eine Ausnahme aus, wenn sich die aktuelle Position des XAML-Knotendatenstroms nicht in einem Bereich befindet, in dem ein Startobjekt geschrieben werden kann, oder der Writer sich nicht in einem Zustand befindet, in dem ein Startobjekt geschrieben werden kann.

WriteValue(Object)

Schreibt einen XAML-Wertknoten in die zugrunde liegende XmlWriter- oder TextWriter-Klasse. Löst eine Ausnahme aus, wenn die aktuelle Position des XAML-Knotenstreams für das Schreiben eines Werts ungültig ist oder der Writer sich in einem Zustand befindet, in dem ein Wert nicht geschrieben werden kann.

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Siehe Dispose().

(Geerbt von XamlWriter)

Gilt für

Siehe auch