XamlXmlWriter Classe

Définition

Utilise une classe de prise en charge TextWriter ou XmlWriter pour écrire un flux de nœud XAML dans une forme sérialisée de balisage ou de texte.

public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
    inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
Héritage
XamlXmlWriter

Remarques

Cette classe est généralement utilisée dans les scénarios de sérialisation.

Utilisation de XamlXmlWriter

L’API XamlWriter a plusieurs méthodes qui écrivent différents types de nœuds XAML. Collectivement, ils sont appelés dans la Write documentation les méthodes d’un XamlWriter. XamlXmlWriter utilise plusieurs classes d’état internes pour déterminer ce qu’il faut faire quand l’une de ses Write implémentations est appelée. Un Write appel utilise les états pour déterminer si l’élément, l’attribut ou la valeur demandé peut être écrit ou si une exception est levée. Par exemple, si vous appelez WriteEndObject et que l’état de la XamlXmlWriter position actuelle du nœud est sur une valeur ou dans un membre, une exception est levée. En règle générale, les appelants de l’API XamlXmlWriter doivent connaître le type du nœud XAML actuel qui provient du lecteur XAML et du flux de nœuds XAML. Sur la base de ces connaissances, les appelants doivent éviter d’appeler Write des API qui ne sont pas pertinentes pour le type de nœud actuel.

Espaces de noms XAML et XamlXmlWriter

Le comportement d’écriture de l’espace de noms XAML de XamlXmlWriter est complexe et n’est pas limité aux appels explicites à WriteNamespace. Au lieu de cela, d’autres Write appels, tels que WriteStartObject, peuvent exiger que la déclaration d’espace de noms soit écrite à des points particuliers de la structure du nœud. L’enregistreur XAML génère un préfixe par sa propre logique ou utilise les informations du INamespacePrefixLookup service pour déterminer un préfixe préféré. En outre, les appels explicites WriteNamespace peuvent différer ou ne renvoyer rien si la déclaration d’espace de noms XAML est déjà applicable et déclarée ailleurs.

Exceptions de méthode Write

Les exceptions levées par les XamlXmlWriterWrite méthodes sont généralement ou InvalidOperationExceptionXamlXmlWriterException.

Un InvalidOperationException indique souvent qu’un lecteur XAML a passé une structure de nœud non valide dans le flux de nœuds XAML. Dans ce cas, la structure de nœud n’est pas valide pour des raisons qui ne sont pas liées à la validation d’un schéma XAML ou d’un contexte de schéma XAML. Au lieu de cela, le flux de nœud n’est pas valide dans sa forme de base. Par exemple, si une implémentation de lecteur XAML défectueuse a généré un flux de nœuds XAML contenant deux nœuds consécutifs StartObject , la tentative d’appel du second WriteStartObject lève un InvalidOperationException. Tous les enregistreurs XAML considèrent qu’une telle opération n’est pas valide. Un autre exemple d’un est lorsque les informations d’espace InvalidOperationException de noms XAML ne sont pas disponibles via le contexte de schéma XAML qui s’applique à la position actuelle du flux de nœud.

Un XamlXmlWriterException indique une exception dans laquelle cette implémentation de l’enregistreur XAML particulière choisit de lever une exception en fonction de ses fonctionnalités prévues. Un XamlXmlWriterException peut indiquer des cas spécifiques où un XamlXmlWriter ne respecte pas son propre état ou paramètres. Par exemple, un XamlXmlWriterException peut résulter de tentatives d’écriture d’informations d’espace de noms XAML dans une position que le XamlXmlWriter et son format de sérialisation ne prennent pas en charge, ou de l’écriture de membres en double lorsque l’instance l’interdit XamlXmlWriterSettings .

Constructeurs

XamlXmlWriter(Stream, XamlSchemaContext)

Initialise une nouvelle instance de la classe XamlXmlWriter à partir d'un flux de données.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Initialise une nouvelle instance de la classe XamlXmlWriter à partir d'un flux à l'aide d'un objet de paramètres de writer.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Initialise une nouvelle instance de la classe XamlXmlWriter à partir d'une base TextWriter.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Initialise une nouvelle instance de la classe XamlXmlWriter à partir d'une base TextWriter, à l'aide d'un objet de paramètres.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Initialise une nouvelle instance de la classe XamlXmlWriter à partir d'une base XmlWriter.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Initialise une nouvelle instance de la classe XamlXmlWriter à partir d'une base XmlWriter, à l'aide d'un objet de paramètres.

Propriétés

IsDisposed

Obtient une valeur indiquant si Dispose(Boolean) a été appelé.

(Hérité de XamlWriter)
SchemaContext

Obtient le contexte de schéma XAML utilisé par ce XamlXmlWriter pour le traitement.

Settings

Obtient les paramètres de writer utilisés par ce XamlXmlWriter pour le traitement XAML.

Méthodes

Close()

Ferme l'objet writer XAML.

(Hérité de XamlWriter)
Dispose(Boolean)

Libère les ressources non managées utilisées par XamlXmlWriter et libère éventuellement les ressources managées.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
Flush()

Appelle la méthode Flush du XmlWriter ou TextWriter sous-jacent, ce qui a pour effet d'écrire toutes les données en mémoire tampon, puis de fermer le writer.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
WriteEndMember()

Écrit un nœud membre de fin XAML dans le XmlWriter ou TextWriter sous-jacent. Lève une exception si la position actuelle du flux de données de nœud XAML n'est pas dans un membre ou si l'état du writer interne ne prend pas en charge l'écriture dans un membre de fin.

WriteEndObject()

Écrit un nœud objet de fin XAML dans le XmlWriter ou TextWriter sous-jacent. Lève une exception si la position actuelle du flux de nœud XAML en cours de traitement est incompatible avec l'écriture d'un objet de fin.

WriteGetObject()

Écrit un objet dans les cas où l'objet spécifié est une valeur par défaut ou implicite de la propriété écrite, au lieu d'être spécifié en tant que valeur d'objet dans le jeu de nœuds XAML d'entrée.

WriteNamespace(NamespaceDeclaration)

Écrit les informations d'espace de noms dans le XmlWriterTextWriter sous-jacent. Peut lever une exception pour certains états ; toutefois, peut à la place différer l'écriture des informations d'espace de noms jusqu'à ce que le writer et le flux de données de nœud XAML en cours de traitement aient atteint une position à laquelle une déclaration d'espace de noms XAML peut être insérée.

WriteNode(XamlReader)

Exécute la commutation selon le type de nœud du lecteur XAML (NodeType) et appelle la méthode Write concernée pour l'implémentation du writer.

(Hérité de XamlWriter)
WriteStartMember(XamlMember)

Écrit un nœud membre de début XAML dans le XmlWriter ou TextWriter sous-jacent. Lève une exception si la position actuelle du flux de données de nœud XAML est dans un autre membre ou si elle n'est pas dans une portée ou un état de writer dans laquelle/lequel un membre de début peut être écrit.

WriteStartObject(XamlType)

Écrit un nœud objet de début XAML dans le XmlWriter ou TextWriter sous-jacent. Lève une exception si la position actuelle du flux de données de nœud XAML n'est pas dans une portée dans laquelle un objet de début peut être écrit ou si l'état du writer ne permet pas l'écriture d'un objet de début.

WriteValue(Object)

Écrit un nœud de valeur XAML dans le XmlWriter ou TextWriter sous-jacent. Lève une exception si la position actuelle du flux de nœud XAML n'est pas valide pour l'écriture d'une valeur ou si l'état du writer ne permet pas l'écriture d'une valeur.

Implémentations d’interfaces explicites

IDisposable.Dispose()

Consultez Dispose().

(Hérité de XamlWriter)

S’applique à

Voir aussi