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- oder XmlWriter-Unterstützungsklasse, um einen XAML-Knotendatenstrom in ein serialisiertes Text- oder Markupformular 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, mit denen verschiedene Typen von XAML-Knoten geschrieben werden. Zusammenfassend werden diese in der Dokumentation als die Write
Methoden eines XamlWriterbezeichnet.
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, Attribut oder Wert geschrieben werden kann oder ob eine Ausnahme ausgelöst wird. Wenn Sie z. B. WriteEndObject aufrufen 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 vom XAML-Reader und dem XAML-Knotenstream stammt. Basierend auf diesem Wissen sollten Aufrufer vermeiden, Write
APIs aufzurufen, die für den aktuellen Knotentyp nicht relevant sind.
XAML-Namespaces und XamlXmlWriter
Das XAML-Namespace-Schreibverhalten von XamlXmlWriter ist komplex und ist nicht auf explizite Aufrufe von WriteNamespacebeschränkt. Stattdessen erfordern andere Write
Aufrufe wie WriteStartObjectmöglicherweise, dass die Namespacedeklaration an bestimmten Punkten in der Knotenstruktur geschrieben wird. Der XAML-Writer generiert entweder ein Präfix anhand einer eigenen Logik oder verwendet Informationen aus dem 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 XamlXmlWriterWrite
Methoden ausgelöst werden, sind in der Regel entweder InvalidOperationException oder XamlXmlWriterException.
Ein InvalidOperationException weist häufig darauf hin, 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 eines XAML-Schemakontexts 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 enthielt, würde der Versuch, den zweiten WriteStartObject aufzurufen, einen InvalidOperationExceptionauslösen. Alle XAML-Autoren würden einen solchen Vorgang als ungültig betrachten. Ein weiteres Beispiel für eine InvalidOperationException ist, wenn XAML-Namespaceinformationen über den XAML-Schemakontext nicht verfügbar sind, der für die aktuelle Knotendatenstromposition gilt.
Ein XamlXmlWriterException gibt eine Ausnahme an, bei der diese bestimmte XAML-Writer-Implementierung eine Ausnahme basierend auf der beabsichtigten Funktionalität auslöst. Ein XamlXmlWriterException kann bestimmte Fälle angeben, in denen ein XamlXmlWriter gegen seinen eigenen Zustand oder seine Eigenen Einstellungen verstößt. Beispielsweise kann ein XamlXmlWriterException aus versuchen, XAML-Namespaceinformationen an eine Position zu schreiben, die vom XamlXmlWriter und dessen Serialisierungsformat nicht unterstützt wird, oder aus dem Schreiben doppelter Member, wenn die instanz XamlXmlWriterSettings sie verbieten.
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 Stream mithilfe eines Writer-Einstellungsobjekts. |
XamlXmlWriter(TextWriter, XamlSchemaContext) |
Initialisiert eine neue Instanz der XamlXmlWriter Klasse von einer TextWriter Basis. |
XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Initialisiert eine neue Instanz der XamlXmlWriter-Klasse anhand eines Einstellungsobjekts auf TextWriter Basis. |
XamlXmlWriter(XmlWriter, XamlSchemaContext) |
Initialisiert eine neue Instanz der XamlXmlWriter Klasse von einer XmlWriter Basis. |
XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Initialisiert eine neue Instanz der XamlXmlWriter-Klasse anhand eines Einstellungsobjekts auf XmlWriter Basis. |
Eigenschaften
IsDisposed |
Ruft ab, ob Dispose(Boolean) aufgerufen wurde. (Geerbt von XamlWriter) |
SchemaContext |
Ruft den XAML-Schemakontext ab, den diese XamlXmlWriter für die Verarbeitung verwendet. |
Settings |
Ruft die Writer-Einstellungen ab, die von diesem XamlXmlWriter für die XAML-Verarbeitung verwendet werden. |
Methoden
Close() |
Schließt das XAML Writer-Objekt. (Geerbt von XamlWriter) |
Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von XamlXmlWriter verwendet werden, und gibt optional die verwalteten Ressourcen frei. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
Flush() |
Ruft die |
GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
WriteEndMember() |
Schreibt einen XAML-Endelementknoten in den zugrunde liegenden XmlWriter oder TextWriter. Löst eine Ausnahme aus, wenn sich die aktuelle Position des XAML-Knotendatenstroms nicht innerhalb eines Mitglieds befindet oder der interne Writer-Zustand das Schreiben in ein Endmitglied nicht unterstützt. |
WriteEndObject() |
Schreibt einen XAML-Endobjektknoten in den zugrunde liegenden XmlWriter oder TextWriter. Löst eine Ausnahme aus, wenn die aktuelle Position des verarbeiteten XAML-Knotendatenstroms nicht mit dem Schreiben eines Endobjekts kompatibel ist. |
WriteGetObject() |
Schreibt ein Objekt für Fälle, in denen das angegebene Objekt ein Standard- oder impliziter Wert der geschriebenen Eigenschaft ist, anstatt als Objektwert im Eingabe-XAML-Knotensatz angegeben zu werden. |
WriteNamespace(NamespaceDeclaration) |
Schreibt Namespaceinformationen in die zugrunde liegende XmlWriter oder TextWriter. Kann eine Ausnahme für bestimmte Zustände auslösen; Kann jedoch das Schreiben der Namespaceinformationen zurückstellen, bis der Writer und der verarbeitete XAML-Knotendatenstrom eine Position erreicht, an der eine XAML-Namespacedeklaration eingefügt werden kann. |
WriteNode(XamlReader) |
Führt den Wechsel basierend auf dem Knotentyp vom XAML-Reader (NodeType) aus und ruft die relevante |
WriteStartMember(XamlMember) |
Schreibt einen XAML-Startelementknoten in den zugrunde liegenden XmlWriter oder TextWriter. Löst eine Ausnahme aus, wenn sich die aktuelle Position des XAML-Knotendatenstroms innerhalb eines anderen Elements befindet oder sich nicht in einem Bereichs- oder Writer-Zustand befindet, in dem ein Startmitglied geschrieben werden kann. |
WriteStartObject(XamlType) |
Schreibt einen XAML-Startobjektknoten in den zugrunde liegenden XmlWriter oder TextWriter. 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 wenn sich der Writer nicht in einem Zustand befindet, der ein Startobjekt schreiben kann. |
WriteValue(Object) |
Schreibt einen XAML-Wertknoten in den zugrunde liegenden XmlWriter oder TextWriter. Löst eine Ausnahme aus, wenn die aktuelle Position des XAML-Knotendatenstroms 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) |