XamlObjectWriter Clase

Definición

Crea un gráfico de objetos a partir de una secuencia de nodos XAML de origen.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
Herencia
XamlObjectWriter
Implementaciones

Comentarios

Los Write métodos de XamlObjectWriter implementan XamlObjectWriter un modelo para que use el XamlWriter objeto definido por el WriteNode método.The Write methods of XamlObjectWriter implement a pattern so that the XamlObjectWriter uses the XamlWriter that is defined by the WriteNode method. WriteNodela lógica cambia entre Write los métodos, dependiendo del tipo de nodo que se encuentra en la posición actual del lector.WriteNode logic switches between the Write methods, depending on which node type is at the current position in the reader.

ÁmbitoScope

Un XamlObjectWriter tiene un concepto de ámbito; es decir XamlObjectWriter , mantiene un punto conceptual de referencia en su gráfico de objetos de salida.A XamlObjectWriter has a concept of scope; that is, the XamlObjectWriter maintains a conceptual point of reference in its output object graph. Para un ámbito determinado, algunas operaciones pueden ser válidas o no válidas, o generar un resultado sin operación.For a particular scope, certain operations might be valid or invalid, or produce a no-operation result. Por ejemplo, si llama WriteStartMember a para escribir directivas para la inicialización en un objeto que ya existe como instancia, la implementación predeterminada produce una excepción.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.

Una posible técnica para realizar el seguimiento del ámbito XamlObjectWriter en un personalizado es alinear las acciones de nodo con una pila o una clase de marco.A possible technique for tracking scope in a custom XamlObjectWriter is to align the node actions with a stack or frame class. La pila o el marco puede realizar un seguimiento de las operaciones de insertar y extraer para cada nivel de profundidad del modelo de objetos que se XamlObjectWriter especifica o sale mientras escribe el gráfico de objetos.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.

DevolucionesCallbacks

Para admitir escenarios intermedios y avanzados XamlObjectWriter , el mecanismo de escritura de un gráfico de objetos proporciona puntos de entrada de devolución de llamada que se producen cuando una XamlObjectWriter confirma o está a punto de confirmar ciertas acciones.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. Algunas devoluciones de llamada están habilitadas en la configuración y no son específicas del tipo de objeto o el miembro que se está escribiendo; sin embargo, la información de devolución de llamada suele estar disponible en contexto o está en los datos de eventos que se envían a través de la devolución de llamada.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. A continuación se muestra una lista de las devoluciones de llamada relevantes:The following is a list of relevant callbacks:

  • La devolución de llamada declarada por AfterBeginInitHandler se invoca cuando el ámbito va a un nuevo objeto y en la BeginInit fase de duración del objeto para cada objeto creado.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.

  • La devolución de llamada declarada por AfterEndInitHandler se invoca cuando el ámbito va a un nuevo objeto y en la EndInit fase de duración del objeto para cada objeto creado.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.

  • La devolución de llamada declarada por BeforePropertiesHandler se invoca cuando el ámbito se inicia en un objeto y se produce cuando se realiza la primera WriteStartMember llamada a ese ámbito de objeto pero aún no se ha confirmado.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.

  • La devolución de llamada declarada por AfterPropertiesHandler se invoca cuando el ámbito se inicia en un objeto y se produce cuando se realiza la WriteEndObject llamada a ese ámbito de objeto pero aún no se ha confirmado.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.

  • La devolución de llamada declarada por XamlSetValueHandler se invoca cuando OnSetValue se llama a.The callback that is declared by XamlSetValueHandler is invoked when OnSetValue is called.

Escribir claves de DiccionarioWriting Dictionary Keys

La implementación predeterminada de XamlObjectWriter admite la conversión de tipos en las restricciones de un Dictionary<TKey,TValue> objeto antes de que el contenido del diccionario se agregue al gráfico de objetos.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 esta manera, los objetos pueden especificar un diccionario genérico en tiempo de ejecución y pueden coincidir con el Add comportamiento genérico y del indexador correspondiente.In this manner, a generic dictionary can be keyed at run time by objects and can match the relevant generic Add and indexer behavior. Sin embargo, tal y como se XamlObjectWriterha implementado para la base, esta funcionalidad solo existe para Dictionary<TKey,TValue> la creación de gráficos de objetos de Dictionary<TKey,TValue>la clase base y no para las clases derivadas de.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>.

Comprobaciones desechadasChecks for Disposed

Los escritores de XAML se usan potencialmente para operaciones diferidas o cuando se realiza una llamada a una instancia del escritor de XAML que se ha eliminado de forma provisional.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. En estos casos XamlObjectWriter , es ObjectDisposedException posible que se produzcan varias API de.Various APIs of XamlObjectWriter might throw ObjectDisposedException in these cases.

Constructores

XamlObjectWriter(XamlSchemaContext)

Inicializa una nueva instancia de la clase XamlObjectWriter con el contexto de esquema XAML usado por un XamlReader.Initializes a new instance of the XamlObjectWriter class using the XAML schema context that is used by a XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicializa una nueva instancia de la clase XamlObjectWriter usando el contexto empleado por un XamlReader y su configuración.Initializes a new instance of the XamlObjectWriter class using the context that is used by a XamlReader and its settings.

Propiedades

IsDisposed

Obtiene un valor que indica si se ha llamado al método Dispose(Boolean).Gets whether Dispose(Boolean) has been called.

(Heredado de XamlWriter)
Result

Obtiene el último objeto que se escribió.Gets the last object that was written. Normalmente, se llama únicamente cuando la secuencia de nodos está llegando al final y el gráfico de objeto está completado.Typically only called when the node stream is at its end and the object graph is complete.

RootNameScope

Obtiene el servicio INameScope que mantiene el ámbito de nombres XAML para la raíz del nodo absoluto del sistema de escritura de objetos XAML.Gets the INameScope service that maintains the XAML namescope for the absolute node root of the XAML object writer.

SchemaContext

Obtiene el contexto de esquema XAML activo.Gets the active XAML schema context.

ShouldProvideLineInfo

Obtiene un valor que indica si un servicio de información de línea debe proporcionar valores y, por tanto, debe llamar también al método SetLineInfo(Int32, Int32) cuando proceda.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étodos

Clear()

Restablece todos los posibles marcos y borra el gráfico de objetos.Resets all possible frames and clears the object graph.

Close()

Cierra el objeto de sistema de escritura XAML.Closes the XAML writer object.

(Heredado de XamlWriter)
Dispose(Boolean)

Libera los recursos no administrados que usa XamlObjectWriter y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the XamlObjectWriter, and optionally, releases the managed resources.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
OnAfterBeginInit(Object)

Invoca cualquier método AfterBeginInitHandler que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.Invokes any AfterBeginInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterEndInit(Object)

Invoca cualquier método AfterEndInitHandler que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.Invokes any AfterEndInitHandler method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnAfterProperties(Object)

Invoca cualquier método AfterPropertiesHandler al que se haga referencia que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.Invokes any AfterPropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnBeforeProperties(Object)

Invoca cualquier método BeforePropertiesHandler al que se haga referencia que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.Invokes any BeforePropertiesHandler referenced method that is associated with XamlObjectWriterSettings for this XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Invoca cualquier método XamlSetValueHandler al que se haga referencia que esté asociado al objeto XamlObjectWriterSettings de este sistema de escritura siempre y cuando el valor de handled de los datos de evento de XamlSetValueEventArgs no sea 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)

Implementa SetLineInfo(Int32, Int32) y proporciona información de línea para las excepciones.Implements SetLineInfo(Int32, Int32) and provides line information for exceptions.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
WriteEndMember()

Cierra el ámbito de miembro actual y puede escribir el valor del ámbito de miembro mientras se cierra.Closes the current member scope, and may write the value of the member scope while it closes. El nuevo ámbito se convierte en el ámbito de objeto primario del miembro.The new scope becomes the parent object scope of the member.

WriteEndObject()

Cierra el ámbito de objeto actual en el sistema de escritura.Closes the current object scope in the writer. El ámbito de objeto nuevo pasa a ser el ámbito del miembro primario.The new object scope becomes the parent member scope.

WriteGetObject()

Escribe el elemento StartObject conceptual en el gráfico de objeto cuando el objeto especificado se corresponde con el valor predeterminado o implícito de la propiedad primaria.Writes the conceptual StartObject into the object graph when the specified object is a default or implicit value of the parent property. El valor implícito procede de la información obtenida del contexto de esquema XAML y de la información sobre los tipos de respaldo, en lugar de especificarse como un valor de objeto en el conjunto de nodos XAML de entrada.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)

Define una declaración de espacio de nombres que se aplica al siguiente ámbito de objeto o ámbito de miembro.Defines a namespace declaration that applies to the next object scope or member scope.

WriteNode(XamlReader)

Realiza el cambio basándose en el tipo de nodo del lector XAML (NodeType) y llama al método Write pertinente para la implementación del sistema de escritura.Performs switching based on node type from the XAML reader (NodeType) and calls the relevant Write method for the writer implementation.

(Heredado de XamlWriter)
WriteStartMember(XamlMember)

Escribe un nuevo nodo de miembro en el ámbito de objeto actual y el ámbito pasa a ser un nuevo ámbito de miembro.Writes a new member node into the current object scope, and the scope becomes a new member scope.

WriteStartObject(XamlType)

Escribe un nodo de objeto en el ámbito actual y establece el ámbito en un nuevo ámbito de objeto.Writes an object node into the current scope, and sets the scope to a new object scope.

WriteValue(Object)

Escribe un valor en el ámbito de miembro actual.Writes a value to the current member scope. Si el ámbito actual está en un objeto de colección, diccionario o matriz, el valor debe agregarse a la colección, el diccionario o la matriz.If the current scope is inside a collection, dictionary, or array object, the value should be added to the collection, dictionary, or array.

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Vea Dispose().See Dispose().

(Heredado de XamlWriter)

Se aplica a

Consulte también: