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 d' XamlObjectWriter implémentent un modèle afin que le XamlObjectWriter utilise le XamlWriter défini par la WriteNode méthode. WriteNode la logique bascule entre les Write méthodes, en fonction du type de nœud situé à la position actuelle dans le lecteur.

Étendue

XamlObjectWriterA un concept de portée ; autrement dit, le XamlObjectWriter gère un point de référence conceptuel dans son graphique d’objets de sortie. Pour une étendue particulière, certaines opérations peuvent être valides ou non valides, ou produire un résultat de non-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 pour le suivi de la portée dans un personnalisé XamlObjectWriter consiste à aligner les actions de nœud avec une classe de pile ou de frame. La pile ou le frame peut effectuer le suivi des notifications push et pop pour chaque niveau de profondeur du modèle d’objet qui est entré ou fermé pendant que XamlObjectWriter écrit le graphique d’objet.

Rappels

Pour prendre en charge les scénarios intermédiaires et avancés XamlObjectWriter , le mécanisme d’écriture d’un graphique d’objet fournit des points d’entrée de rappel qui se produisent quand une XamlObjectWriter validation 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 en contexte ou dans les données d’événement qui sont envoyées par le biais du rappel. La liste suivante répertorie les rappels pertinents :

  • Le rappel déclaré par AfterBeginInitHandler est appelé lorsque la portée passe à un nouvel objet et à la BeginInit phase de la durée de vie des objets pour chaque objet créé.

  • Le rappel déclaré par AfterEndInitHandler est appelé lorsque la portée passe à un nouvel objet et à la EndInit phase de la durée de vie des objets pour chaque objet créé.

  • Le rappel qui est déclaré par BeforePropertiesHandler est appelé lorsque l’étendue démarre dans un objet et se produit lorsque le premier WriteStartMember appel à cette portée 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' WriteEndObject appel à cette portée 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’objet. De cette manière, un dictionnaire générique peut être indexé au moment de l’exécution par des objets et peut correspondre au comportement générique et à l' Add 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 suppressions

Les writers XAML sont potentiellement utilisés pour les opérations différées ou lorsqu’un appel est effectué par rapport à une instance du writer XAML supprimée à l’intervalle. Les différentes API de XamlObjectWriter peuvent être levées ObjectDisposedException dans ces cas.

Constructeurs

XamlObjectWriter(XamlSchemaContext)

Initialise une nouvelle instance de la classe XamlObjectWriter à l’aide 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