XamlXmlWriter Clase

Definición

Usa una clase de soporte TextWriter o XmlWriter para escribir una secuencia de nodos XAML en un formato serializado de texto o de marcado.

public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
    inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
Herencia
XamlXmlWriter

Comentarios

Esta clase se usa normalmente en escenarios de serialización.

Cómo usar XamlXmlWriter

La XamlWriter API tiene varios métodos que escriben diferentes tipos de nodos XAML. Colectivamente, estos se conocen en la documentación como los Write métodos de .XamlWriter XamlXmlWriter usa varias clases de estado internas para determinar qué hacer cuando se llama a una de sus Write implementaciones. Una Write llamada usa los estados para determinar si se puede escribir el elemento, el atributo o el valor solicitados, o si se produce una excepción. Por ejemplo, si llama a WriteEndObject y el estado de la XamlXmlWriter posición del nodo actual está en un valor o dentro de un miembro, se produce una excepción. Normalmente, los autores de llamadas de la XamlXmlWriter API deben tener en cuenta el tipo del nodo XAML actual que procede del lector XAML y del flujo de nodos XAML. En función de este conocimiento, los autores de llamadas deben evitar llamar a Write las API que no son relevantes para el tipo de nodo actual.

Espacios de nombres XAML y XamlXmlWriter

El comportamiento de escritura del espacio de nombres XAML de XamlXmlWriter es complejo y no se limita a llamadas explícitas a WriteNamespace. En su lugar, otras Write llamadas, como WriteStartObject, pueden requerir que la declaración del espacio de nombres se escriba en puntos concretos de la estructura del nodo. El escritor XAML genera un prefijo por su propia lógica o usa información del INamespacePrefixLookup servicio para determinar un prefijo preferido. Además, las llamadas explícitas WriteNamespace pueden aplazar o no devolver nada si la declaración de espacio de nombres XAML ya es aplicable y se declara en otro lugar.

Excepciones de método de escritura

Las excepciones producidas por los XamlXmlWriterWrite métodos suelen ser InvalidOperationException o XamlXmlWriterException.

Un InvalidOperationException objeto a menudo indica que un lector XAML pasó una estructura de nodo no válida al flujo de nodos XAML. En este caso, la estructura del nodo no es válida por motivos que no están relacionados con la validación de un esquema XAML o un contexto de esquema XAML. En su lugar, el flujo de nodo no es válido en su forma básica. Por ejemplo, si una implementación de lector XAML errónea generó un flujo de nodo XAML que contenía dos nodos consecutivos StartObject , el intento de llamar al segundo WriteStartObject produciría un InvalidOperationException. Todos los escritores XAML considerarían que una operación de este tipo no es válida. Otro ejemplo de un InvalidOperationException es cuando la información del espacio de nombres XAML no está disponible a través del contexto de esquema XAML que se aplica a la posición actual del flujo de nodo.

Un XamlXmlWriterException indica una excepción en la que esta implementación concreta del escritor XAML elige iniciar una excepción en función de su funcionalidad prevista. Puede XamlXmlWriterException indicar casos específicos en los que XamlXmlWriter infringe su propio estado o configuración. Por ejemplo, un XamlXmlWriterException podría deberse a intentos de escribir información de espacio de nombres XAML en una posición que el XamlXmlWriter y su formato de serialización no admiten o escribir miembros duplicados cuando la instancia lo XamlXmlWriterSettings prohíbe.

Constructores

XamlXmlWriter(Stream, XamlSchemaContext)

Inicializa una nueva instancia de la clase XamlXmlWriter a partir de una secuencia.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Inicializa una nueva instancia de la clase XamlXmlWriter a partir de una secuencia usando un objeto de configuración del sistema de escritura.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Inicializa una nueva instancia de la clase XamlXmlWriter a partir de una base TextWriter.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializa una nueva instancia de la clase XamlXmlWriter a partir de una base TextWriter usando un objeto de configuración.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Inicializa una nueva instancia de la clase XamlXmlWriter a partir de una base XmlWriter.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializa una nueva instancia de la clase XamlXmlWriter a partir de una base XmlWriter usando un objeto de configuración.

Propiedades

IsDisposed

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

(Heredado de XamlWriter)
SchemaContext

Obtiene el contexto de esquema XAML que este XamlXmlWriter emplea para el procesamiento.

Settings

Obtiene la configuración del sistema de escritura que XamlXmlWriter emplea para el procesamiento de XAML.

Métodos

Close()

Cierra el objeto de sistema de escritura XAML.

(Heredado de XamlWriter)
Dispose(Boolean)

Libera los recursos no administrados usados por XamlXmlWriter y, opcionalmente, libera los recursos administrados.

Equals(Object)

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

(Heredado de Object)
Flush()

Llama al método Flush de los objetos XmlWriter o TextWriter subyacentes, lo que escribe todo lo que haya en ese momento en el búfer y, a continuación, cierra el sistema de escritura.

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)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
WriteEndMember()

Escribe un nodo de miembro final XAML en el objeto XmlWriter o TextWriter subyacente. Produce una excepción si la posición actual de la secuencia de nodos XAML no está dentro de un miembro o si el estado interno del sistema de escritura no permite escribir en un miembro final.

WriteEndObject()

Escribe un nodo de objeto final XAML en el objeto XmlWriter o TextWriter subyacente. Produce una excepción si la posición actual de la secuencia de nodos XAML que se está procesando es incompatible con la escritura de un objeto final.

WriteGetObject()

Escribe un objeto para los casos en los que el objeto en cuestión es un valor predeterminado o implícito de la propiedad que se está escribiendo, en lugar de especificarse como un valor de objeto en el conjunto de nodos XAML de entrada.

WriteNamespace(NamespaceDeclaration)

Escribe información de espacio de nombres en el objeto XmlWriter o TextWriter subyacente. Puede producir una excepción para ciertos estados; sin embargo, en su lugar puede diferir la escritura de la información del espacio de nombres hasta que el sistema de escritura y la secuencia de nodos XAML que se está procesando alcancen una posición donde se pueda insertar una declaración de espacio de nombres XAML.

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 nodo de miembro inicial XAML en el objeto XmlWriter o TextWriter subyacente. Produce una excepción si la posición actual de la secuencia de nodos XAML está dentro de otro miembro, o si no está en un ámbito o en un estado del sistema de escritura donde se pueda escribir un miembro inicial.

WriteStartObject(XamlType)

Escribe un nodo de objeto inicial XAML en el objeto XmlWriter o TextWriter subyacente. Produce una excepción si la posición actual de la secuencia de nodos XAML no está en un ámbito donde se pueda escribir un objeto inicial o si el sistema de escritura no está en un estado que pueda escribir un objeto inicial.

WriteValue(Object)

Escribe un nodo de valor XAML en el objeto XmlWriter o TextWriter subyacente. Produce una excepción si la posición actual de la secuencia de nodos XAML no es válida para escribir un valor o si el sistema de escritura está en un estado en el que no se puede escribir un valor.

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Vea Dispose().

(Heredado de XamlWriter)

Se aplica a

Consulte también