XamlObjectWriter Classe

Définition

Crée un graphique d'objet à partir d'un flux de données de nœud XAML source.Creates an object graph from a source XAML node stream.

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 méthodes Write de XamlObjectWriter implémentent un modèle afin que le XamlObjectWriter utilise la XamlWriter définie par la méthode WriteNode.The Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNode logique bascule entre les méthodes de Write, en fonction du type de nœud qui se trouve à la position actuelle dans le lecteur.WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

ÉtendueScope

Un XamlObjectWriter a un concept de portée ; autrement dit, le XamlObjectWriter conserve un point conceptuel de référence dans son graphique d’objets de sortie.A XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. Pour une étendue particulière, certaines opérations peuvent être valides ou non valides, ou produire un résultat de non-opération.For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. 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.For example, if you call WriteStartMember to write directives for initialization on an object that already exists as an instance, the default implementation throws an exception.

Une technique possible pour le suivi de l’étendue dans un XamlObjectWriter personnalisé consiste à aligner les actions de nœud avec une classe de pile ou de frame.A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. La pile ou le frame peut effectuer le suivi des notifications push et pop pour chaque niveau de profondeur de modèle objet qui est entré ou fermé pendant que le XamlObjectWriter écrit le graphique d’objet.The stack or frame can keep track of push and pop for each level of object-model depth that is entered or exited while the XamlObjectWriter writes the object graph.

RappelsCallbacks

Pour prendre en charge les scénarios de XamlObjectWriter intermédiaires et avancés, le mécanisme d’écriture d’un graphique d’objet fournit des points d’entrée de rappel qui se produisent lorsqu’un XamlObjectWriter valide ou est sur le point de valider certaines actions.To support intermediate and advanced XamlObjectWriter scenarios, the mechanism of writing an object graph provides callback entry points that occur when a XamlObjectWriter commits or is about to commit certain 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.Some callbacks are enabled in the settings and are not specific to the object type or the member being written; however, callback information is often available in context or is in the event data that is sent through the callback. La liste suivante répertorie les rappels pertinents :The following is a list of relevant callbacks:

  • Le rappel qui est déclaré par AfterBeginInitHandler est appelé lorsque la portée passe à un nouvel objet et à la phase BeginInit de la durée de vie des objets pour chaque objet créé.The callback that is declared by AfterBeginInitHandler is invoked when the scope goes to a new object and at the BeginInit phase of object lifetime for each created object.

  • Le rappel qui est déclaré par AfterEndInitHandler est appelé lorsque la portée passe à un nouvel objet et à la phase EndInit de la durée de vie des objets pour chaque objet créé.The callback that is declared by AfterEndInitHandler is invoked when the scope goes to a new object and at the EndInit phase of object lifetime for each created object.

  • 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é.The callback that is declared by BeforePropertiesHandler is invoked when the scope starts in an object, and occurs when the first WriteStartMember call to that object scope is made but not yet committed.

  • Le rappel qui est déclaré par AfterPropertiesHandler est appelé lorsque l’étendue démarre dans un objet et se produit lorsque l’appel de WriteEndObject à cette portée d’objet est effectué mais pas encore validé.The callback that is declared by AfterPropertiesHandler is invoked when the scope starts in an object, and happens when the WriteEndObject call to that object scope is made but not yet committed.

  • Le rappel qui est déclaré par XamlSetValueHandler est appelé lors de l’appel de OnSetValue.The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

Écriture de clés de dictionnaireWriting Dictionary Keys

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.The default implementation of XamlObjectWriter supports type conversion on the constraints of a Dictionary<TKey,TValue> before the dictionary contents are added to the object graph. De cette manière, un dictionnaire générique peut être indexé au moment de l’exécution par des objets et peut correspondre aux Add génériques et au comportement de l’indexeur.In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. Toutefois, comme implémenté pour le XamlObjectWriterde base, cette fonctionnalité existe uniquement pour la création de graphiques d’objets à partir de la classe de Dictionary<TKey,TValue> de base et non pour les classes dérivées de Dictionary<TKey,TValue>.However, as implemented for the base XamlObjectWriter, this capability exists only for object graph creation from the base Dictionary<TKey,TValue> class and not for derived classes of Dictionary<TKey,TValue>.

Recherche les suppressionsChecks for Disposed

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.XAML writers are potentially used for deferred operations or where a call is made against a XAML writer instance that has been disposed in the interim. Les différentes API de XamlObjectWriter peuvent lever des ObjectDisposedException dans ces cas.Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

Constructeurs

XamlObjectWriter(XamlSchemaContext)

Initialise une nouvelle instance de la classe XamlObjectWriter à l’aide du contexte de schéma XAML utilisé par un XamlReader.Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Initialise une nouvelle instance de la classe XamlObjectWriter à l'aide du contexte utilisé par un XamlReader et ses paramètres.Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

Propriétés

IsDisposed

Obtient une valeur indiquant si Dispose(Boolean) a été appelé.Gets whether Dispose(Boolean) has been called.

(Hérité de XamlWriter)
Result

Obtient le dernier objet qui a été écrit.Gets the last object that was written. En général, appelé uniquement lorsque le flux de nœud est à sa fin et que le graphique d'objet est terminé.Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope

Obtient le service INameScope qui maintient la portée de nom XAML pour le nœud racine absolu du writer d'objet XAML.Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext

Obtient le contexte de schéma XAML actif.Gets the active XAML schema context.

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.Gets a value that reports whether a line information service should provide values and therefore, should also call the SetLineInfo(Int32, Int32) method when it is relevant.

Méthodes

Clear()

Réinitialise toutes les images possibles et efface le graphique d'objet.Resets all possible frames and clears the object graph.

Close()

Ferme l'objet writer XAML.Closes the XAML writer object.

(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.Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GetHashCode()

Sert de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
OnAfterBeginInit(Object)

Appelle une méthode AfterBeginInitHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

Appelle une méthode AfterEndInitHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

Appelle une méthode référencée AfterPropertiesHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

Appelle une méthode référencée BeforePropertiesHandler associée à XamlObjectWriterSettings pour ce XamlObjectWriter.Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this 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.Invokes any XamlSetValueHandler referenced method that is associated with XamlObjectWriterSettings for this writer, as long as handled in XamlSetValueEventArgs event data is not true.

SetLineInfo(Int32, Int32)

Implémente SetLineInfo(Int32, Int32) et fournit les informations de ligne pour les exceptions.Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString()

Retourne une chaîne qui représente l'objet actif.Returns a string that represents the current object.

(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.Closes the current member scope, and may write the value of the member scope while it closes. La nouvelle portée devient la portée d'objets parents du membre.The new scope becomes the parent object scope of the member.

WriteEndObject()

Ferme la portée d'objets actuelle dans le writer.Closes the current object scope in the writer. La nouvelle portée d'objets devient la portée de membres parents.The new object scope becomes the parent member scope.

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.Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. 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.The implicit value comes from information that is obtained from the XAML schema context and backing type information, instead of being specified as an object value in the input XAML node set.

WriteNamespace(NamespaceDeclaration)

Définit une déclaration d'espace de noms qui s'applique à la portée d'objets ou de membres suivante.Defines a namespace declaration that applies to the next object scope or member scope.

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.Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(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.Writes a new member node into the current object scope, and the scope becomes a new member scope.

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.Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object)

Écrit une valeur dans la portée de membres actuelle.Writes a value to the current member scope. 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.If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

Implémentations d’interfaces explicites

IDisposable.Dispose()

Consultez Dispose().See Dispose().

(Hérité de XamlWriter)

S’applique à

Voir aussi