Compartir a través de


XamlObjectWriter Clase

Definición

Crea un gráfico de objetos a partir de una secuencia de nodos XAML de origen.

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 un patrón para que XamlObjectWriter use el XamlWriter objeto definido por el WriteNode método . WriteNode lógica cambia entre los Write métodos, dependiendo del tipo de nodo que se encuentra en la posición actual del lector.

Ámbito

XamlObjectWriter Un tiene un concepto de ámbito; es decir, mantiene XamlObjectWriter un punto conceptual de referencia en su gráfico de objetos de salida. Para un ámbito determinado, ciertas operaciones pueden ser válidas o no válidas, o generar un resultado sin operación. Por ejemplo, si llama WriteStartMember a para escribir directivas para la inicialización en un objeto que ya existe como una instancia, la implementación predeterminada produce una excepción.

Una posible técnica para realizar el seguimiento del ámbito en un personalizado XamlObjectWriter es alinear las acciones de nodo con una clase de pila o marco. La pila o marco puede realizar un seguimiento de las inserciones y elementos emergentes de cada nivel de profundidad del modelo de objetos que se introduce o sale mientras XamlObjectWriter escribe el gráfico de objetos.

Devoluciones de llamada

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 se confirma o XamlObjectWriter está a punto de confirmar determinadas acciones. Algunas devoluciones de llamada están habilitadas en la configuración y no son específicas del tipo de objeto o del 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. A continuación se muestra una lista de devoluciones de llamada pertinentes:

  • 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.

  • 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.

  • 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 confirma.

  • 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 confirma.

  • La devolución de llamada declarada por XamlSetValueHandler se invoca cuando OnSetValue se llama a .

Escritura de claves de diccionario

La implementación predeterminada de XamlObjectWriter admite la conversión de tipos en las restricciones de un Dictionary<TKey,TValue> antes de que el contenido del diccionario se agregue al gráfico de objetos. De esta manera, un diccionario genérico se puede claver en tiempo de ejecución por objetos y puede coincidir con el comportamiento genérico Add e indexador pertinente. Sin embargo, como se implementa para la base XamlObjectWriter, esta funcionalidad solo existe para la creación de grafos de objetos a partir de la clase base Dictionary<TKey,TValue> y no para las clases derivadas de Dictionary<TKey,TValue>.

Comprobaciones de Disposed

Los escritores XAML se usan potencialmente para las operaciones diferidas o donde se realiza una llamada en una instancia de escritor XAML que se ha eliminado provisionalmente. Varias API de XamlObjectWriter pueden iniciarse ObjectDisposedException en estos casos.

Constructores

XamlObjectWriter(XamlSchemaContext)

Inicializa una nueva instancia de la XamlObjectWriter clase mediante el contexto de esquema XAML que usa un XamlReaderobjeto .

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicializa una nueva instancia de la clase XamlObjectWriter usando el contexto empleado por un XamlReader y su configuración.

Propiedades

IsDisposed

Obtiene un valor que indica si se ha llamado al método Dispose(Boolean).

(Heredado de XamlWriter)
Result

Obtiene el último objeto que se escribió. Normalmente, se llama únicamente cuando la secuencia de nodos está llegando al final y el gráfico de objeto está completado.

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.

SchemaContext

Obtiene el contexto de esquema XAML activo.

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.

Métodos

Clear()

Restablece todos los posibles marcos y borra el gráfico de objetos.

Close()

Cierra el objeto de sistema de escritura XAML.

(Heredado de XamlWriter)
Dispose(Boolean)

Libera los recursos no administrados que usa XamlObjectWriter y, de forma opcional, libera los recursos administrados.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnAfterBeginInit(Object)

Invoca cualquier método AfterBeginInitHandler que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.

OnAfterEndInit(Object)

Invoca cualquier método AfterEndInitHandler que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.

OnAfterProperties(Object)

Invoca cualquier método AfterPropertiesHandler al que se haga referencia que esté asociado a XamlObjectWriterSettings para este objeto XamlObjectWriter.

OnBeforeProperties(Object)

Invoca cualquier método BeforePropertiesHandler al que se haga referencia que esté asociado a XamlObjectWriterSettings para este objeto 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.

SetLineInfo(Int32, Int32)

Implementa SetLineInfo(Int32, Int32) y proporciona información de línea para las excepciones.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
WriteEndMember()

Cierra el ámbito de miembro actual y puede escribir el valor del ámbito de miembro mientras se cierra. El nuevo ámbito se convierte en el ámbito de objeto primario del miembro.

WriteEndObject()

Cierra el ámbito de objeto actual en el sistema de escritura. El ámbito de objeto nuevo pasa a ser el ámbito del miembro primario.

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. 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.

WriteNamespace(NamespaceDeclaration)

Define una declaración de espacio de nombres que se aplica al siguiente ámbito de objeto o ámbito de miembro.

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.

(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.

WriteStartObject(XamlType)

Escribe un nodo de objeto en el ámbito actual y establece el ámbito en un nuevo ámbito de objeto.

WriteValue(Object)

Escribe un valor en el ámbito de miembro actual. 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.

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Vea Dispose().

(Heredado de XamlWriter)

Se aplica a

Consulte también