Freigeben über


XamlXmlWriter Klasse

Definition

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
XamlXmlWriter

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 Flush Methode der zugrunde liegenden XmlWriter oder TextWriterauf, die alle elemente schreibt, die sich derzeit im Puffer befinden, und schließt dann den Writer.

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 Write Methode für die Writer-Implementierung auf.

(Geerbt von XamlWriter)
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)

Gilt für:

Weitere Informationen