XamlObjectWriter Classe

Définition

Crée un graphique d'objet à partir d'un flux de données de nœud XAML source.

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
Héritage
XamlObjectWriter
Implémente

Remarques

Les Write méthodes de XamlObjectWriter implémentent un modèle afin que le XamlObjectWriter utilise le XamlWriter qui est défini par la WriteNode méthode . WriteNode la logique bascule entre les Write méthodes, en fonction du type de nœud qui se trouve à la position actuelle dans le lecteur.

Étendue

A XamlObjectWriter un concept d’étendue; autrement dit, conserve XamlObjectWriter un point de référence conceptuel dans son graphe d’objet de sortie. Pour une étendue particulière, certaines opérations peuvent être valides ou non valides, ou produire un résultat sans opération. Par exemple, si vous appelez WriteStartMember pour écrire des directives pour l’initialisation sur un objet qui existe déjà en tant qu’instance, l’implémentation par défaut lève une exception.

Une technique possible de suivi de l’étendue dans un personnalisé XamlObjectWriter consiste à aligner les actions de nœud sur une pile ou une classe frame. La pile ou l’image peut effectuer le suivi de l’envoi (push) et du pop pour chaque niveau de profondeur du modèle objet entré ou sorti pendant l’écriture du XamlObjectWriter graphe d’objets.

Rappels

Pour prendre en charge les scénarios intermédiaires et avancés XamlObjectWriter , le mécanisme d’écriture d’un graphique d’objets fournit des points d’entrée de rappel qui se produisent lorsqu’un XamlObjectWriter commite ou est sur le point de valider certaines actions. Certains rappels sont activés dans les paramètres et ne sont pas spécifiques au type d’objet ou au membre en cours d’écriture ; toutefois, les informations de rappel sont souvent disponibles dans le contexte ou se situent dans les données d’événement envoyées via le rappel. Voici une liste de rappels pertinents :

  • Le rappel déclaré par AfterBeginInitHandler est appelé lorsque l’étendue passe à un nouvel objet et à la phase de durée BeginInit de vie de chaque objet créé.

  • Le rappel déclaré par AfterEndInitHandler est appelé lorsque l’étendue passe à un nouvel objet et à la phase de durée EndInit de vie de chaque objet créé.

  • Le rappel déclaré par BeforePropertiesHandler est appelé lorsque l’étendue démarre dans un objet et se produit lorsque le premier WriteStartMember appel à cette étendue d’objet est effectué, mais pas encore validé.

  • Le rappel déclaré par AfterPropertiesHandler est appelé lorsque l’étendue démarre dans un objet et se produit lorsque l’appel WriteEndObject à cette étendue d’objet est effectué, mais pas encore validé.

  • Le rappel déclaré par XamlSetValueHandler est appelé quand OnSetValue est appelé.

Écriture de clés de dictionnaire

L’implémentation par défaut de XamlObjectWriter prend en charge la conversion de type sur les contraintes d’un Dictionary<TKey,TValue> avant que le contenu du dictionnaire ne soit ajouté au graphique d’objets. De cette façon, un dictionnaire générique peut être clé au moment de l’exécution par des objets et peut correspondre au comportement générique Add et de l’indexeur approprié. Toutefois, comme implémenté pour la base XamlObjectWriter, cette fonctionnalité existe uniquement pour la création de graphiques d’objets à partir de la classe de base Dictionary<TKey,TValue> et non pour les classes dérivées de Dictionary<TKey,TValue>.

Recherche les données supprimées

Les enregistreurs XAML sont potentiellement utilisés pour les opérations différées ou lorsqu’un appel est effectué sur une instance d’enregistreur XAML qui a été supprimée entre-temps. Différentes API de XamlObjectWriter peuvent être levées ObjectDisposedException dans ces cas.

Constructeurs

XamlObjectWriter(XamlSchemaContext)

Initialise une nouvelle instance de la classe à l’aide XamlObjectWriter du contexte de schéma XAML utilisé par un XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Initialise une nouvelle instance de la classe XamlObjectWriter à l'aide du contexte utilisé par un XamlReader et ses paramètres.

Propriétés

IsDisposed

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

(Hérité de XamlWriter)
Result

Obtient le dernier objet qui a été écrit. En général, appelé uniquement lorsque le flux de nœud est à sa fin et que le graphique d'objet est terminé.

RootNameScope

Obtient le service INameScope qui maintient la portée de nom XAML pour le nœud racine absolu du writer d'objet XAML.

SchemaContext

Obtient le contexte de schéma XAML actif.

ShouldProvideLineInfo

Obtient une valeur qui indique si un service d'informations de ligne doit fournir des valeurs et par conséquent également appeler la méthode SetLineInfo(Int32, Int32) si nécessaire.

Méthodes

Clear()

Réinitialise toutes les images possibles et efface le graphique d'objet.

Close()

Ferme l'objet writer XAML.

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

Libère les ressources non managées utilisées par XamlObjectWriter, 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)
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)
OnAfterBeginInit(Object)

Appelle une méthode AfterBeginInitHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.

OnAfterEndInit(Object)

Appelle une méthode AfterEndInitHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.

OnAfterProperties(Object)

Appelle une méthode référencée AfterPropertiesHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.

OnBeforeProperties(Object)

Appelle une méthode référencée BeforePropertiesHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Appelle une méthode référencée XamlSetValueHandler associée à XamlObjectWriterSettings pour ce writer, dans la mesure où handled dans les données d'événement XamlSetValueEventArgs n'a pas la valeur true.

SetLineInfo(Int32, Int32)

Implémente SetLineInfo(Int32, Int32) et fournit les informations de ligne pour les exceptions.

ToString()

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

(Hérité de Object)
WriteEndMember()

Ferme la portée de membres actuelle et écrit éventuellement la valeur de la portée de membres pendant qu'elle se ferme. La nouvelle portée devient la portée d'objets parents du membre.

WriteEndObject()

Ferme la portée d'objets actuelle dans le writer. La nouvelle portée d'objets devient la portée de membres parents.

WriteGetObject()

Écrit le StartObject conceptuel dans le graphique d'objet lorsque l'objet spécifié est une valeur par défaut ou implicite de la propriété parente. La valeur implicite provient des informations obtenues du contexte de schéma XAML et des informations de type de stockage, au lieu d'être spécifiée en tant que valeur d'objet dans le jeu de nœuds XAML d'entrée.

WriteNamespace(NamespaceDeclaration)

Définit une déclaration d'espace de noms qui s'applique à la portée d'objets ou de membres suivante.

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 nouveau nœud membre dans la portée d'objets actuelle, et la portée devient une nouvelle portée de membres.

WriteStartObject(XamlType)

Écrit un nouveau nœud objet dans la portée actuelle et définit la portée sur une nouvelle portée d'objets.

WriteValue(Object)

Écrit une valeur dans la portée de membres actuelle. Si la portée actuelle est à l'intérieur d'une collection, d'un dictionnaire ou d'un objet tableau, la valeur doit être ajoutée à la collection, au dictionnaire ou au tableau.

Implémentations d’interfaces explicites

IDisposable.Dispose()

Consultez Dispose().

(Hérité de XamlWriter)

S’applique à

Voir aussi