XamlXmlWriter Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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 |
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 |
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) |