XamlObjectWriter Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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 |
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 |
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 |
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) |