XamlXmlWriter Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Utilise une classe de prise en charge TextWriter ou XmlWriter pour écrire un flux de nœud XAML dans un formulaire sérialisé de texte ou de balisage.
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
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, on les appelle dans la documentation les méthodes Write
d’un XamlWriter.
XamlXmlWriter utilise plusieurs classes d’état internes pour déterminer ce qu’il faut faire quand l’une de ses implémentations Write
est appelée. Un appel Write
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 position de nœud actuelle XamlXmlWriter se trouve 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 provenant du lecteur XAML et du flux de nœud XAML. En fonction de cette connaissance, les appelants doivent éviter d’appeler Write
API qui ne sont pas pertinentes pour le type de nœud actuel.
Espaces de noms XAML et XamlXmlWriter
Le comportement d’écriture d’espace de noms XAML de XamlXmlWriter est complexe et n’est pas limité aux appels explicites à WriteNamespace. Au lieu de cela, d’autres appels Write
, tels que WriteStartObject, peuvent exiger que la déclaration d’espace de noms soit écrite à des points particuliers dans la structure du nœud. L’enregistreur XAML génère un préfixe par sa propre logique ou utilise des informations du service INamespacePrefixLookup pour déterminer un préfixe préféré. En outre, les appels de WriteNamespace explicites 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 méthodes XamlXmlWriterWrite
sont généralement InvalidOperationException ou XamlXmlWriterException.
Un InvalidOperationException indique souvent qu’un lecteur XAML a passé une structure de nœud non valide dans le flux de nœud 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œuds n’est pas valide sous sa forme de base. Par exemple, si une implémentation de lecteur XAML défaillante a généré un flux de nœuds XAML qui contenait deux nœuds StartObject
consécutifs, la tentative d’appel du deuxième WriteStartObject lèverait une InvalidOperationException. Tous les enregistreurs XAML considèrent qu’une telle opération n’est pas valide. Un autre exemple de InvalidOperationException est le moment où les informations d’espace 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.
Une XamlXmlWriterException indique une exception dans laquelle cette implémentation d’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 enfreint son propre état ou ses propres paramètres. Par exemple, un XamlXmlWriterException peut résulter de tentatives d’écriture d’informations d’espace de noms XAML dans une position où le XamlXmlWriter et son format de sérialisation ne prennent pas en charge, ou l’écriture de membres dupliqués lorsque le XamlXmlWriterSettings de l’instance l’interdit.
Constructeurs
XamlXmlWriter(Stream, XamlSchemaContext) |
Initialise une nouvelle instance de la classe XamlXmlWriter à partir d’un flux. |
XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings) |
Initialise une nouvelle instance de la classe XamlXmlWriter à partir d’un flux à l’aide d’un objet de paramètres d’enregistreur. |
XamlXmlWriter(TextWriter, XamlSchemaContext) |
Initialise une nouvelle instance de la classe XamlXmlWriter d’une base TextWriter. |
XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Initialise une nouvelle instance de la classe XamlXmlWriter à partir d’un TextWriter base à l’aide d’un objet settings. |
XamlXmlWriter(XmlWriter, XamlSchemaContext) |
Initialise une nouvelle instance de la classe XamlXmlWriter d’une base XmlWriter. |
XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Initialise une nouvelle instance de la classe XamlXmlWriter à partir d’un XmlWriter base à l’aide d’un objet settings. |
Propriétés
IsDisposed |
Obtient si Dispose(Boolean) a été appelée. (Hérité de XamlWriter) |
SchemaContext |
Obtient le contexte de schéma XAML que cette XamlXmlWriter utilise pour le traitement. |
Settings |
Obtient les paramètres de l’enregistreur que cette XamlXmlWriter utilise 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 |
GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (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 final XAML dans le XmlWriter sous-jacent ou TextWriter. Lève une exception si la position actuelle du flux de nœud XAML n’est pas au sein d’un membre, ou si l’état de l’enregistreur interne ne prend pas en charge l’écriture dans un membre final. |
WriteEndObject() |
Écrit un nœud d’objet final XAML dans le XmlWriter sous-jacent ou TextWriter. 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 final. |
WriteGetObject() |
Écrit un objet dans les cas où l’objet spécifié est une valeur par défaut ou implicite de la propriété en cours d’écriture, au lieu d’être spécifié comme valeur d’objet dans le jeu de nœuds XAML d’entrée. |
WriteNamespace(NamespaceDeclaration) |
Écrit les informations d’espace de noms dans les XmlWriter ou TextWritersous-jacentes. Peut lever une exception pour certains états ; toutefois, peut différer l’écriture des informations d’espace de noms jusqu’à ce que l’enregistreur et le flux de nœud XAML en cours de traitement atteignent une position où une déclaration d’espace de noms XAML peut être insérée. |
WriteNode(XamlReader) |
Effectue le basculement en fonction du type de nœud à partir du lecteur XAML (NodeType) et appelle la méthode |
WriteStartMember(XamlMember) |
Écrit un nœud membre de démarrage XAML dans le XmlWriter ou TextWritersous-jacent . Lève une exception si la position actuelle du flux de nœud XAML se trouve dans un autre membre, ou si elle n’est pas dans un état d’étendue ou d’enregistreur où un membre de démarrage peut être écrit. |
WriteStartObject(XamlType) |
Écrit un nœud d’objet de démarrage XAML dans le XmlWriter ou TextWritersous-jacent. Lève une exception si la position actuelle du flux de nœud XAML n’est pas dans une étendue où un objet de démarrage peut être écrit ou si l’enregistreur n’est pas dans un état qui peut écrire un objet de démarrage. |
WriteValue(Object) |
Écrit un nœud de valeur XAML dans le XmlWriter sous-jacent ou TextWriter. Lève une exception si la position actuelle du flux de nœud XAML n’est pas valide pour écrire une valeur, ou si l’enregistreur est dans un état où une valeur ne peut pas être écrite. |
Implémentations d’interfaces explicites
IDisposable.Dispose() |
Voir Dispose(). (Hérité de XamlWriter) |