XamlXmlWriter Classe

Definição

Usa uma classe de suporte TextWriter ou XmlWriter para gravar um fluxo do nó XAML em um formulário serializado de texto ou marcação.

public ref class XamlXmlWriter : System::Xaml::XamlWriter
public class XamlXmlWriter : System.Xaml.XamlWriter
type XamlXmlWriter = class
    inherit XamlWriter
Public Class XamlXmlWriter
Inherits XamlWriter
Herança
XamlXmlWriter

Comentários

Normalmente, essa classe é usada em cenários de serialização.

Como usar XamlXmlWriter

A XamlWriter API tem vários métodos que gravam diferentes tipos de nós XAML. Coletivamente, eles são referidos na documentação como os Write métodos de um XamlWriter. XamlXmlWriter usa várias classes de estado internas para determinar o que fazer quando uma de suas Write implementações é chamada. Uma Write chamada usa os estados para determinar se o elemento, atributo ou valor solicitado pode ser gravado ou se uma exceção é gerada. Por exemplo, se você chamar WriteEndObject e o estado da posição do XamlXmlWriter nó atual estiver em um valor ou dentro de um membro, uma exceção será gerada. Normalmente, os XamlXmlWriter chamadores da API devem estar cientes do tipo do nó XAML atual proveniente do leitor XAML e do fluxo de nó XAML. Com base nesse conhecimento, os chamadores devem evitar chamar Write APIs que não são relevantes para o tipo de nó atual.

Namespaces XAML e XamlXmlWriter

O comportamento de gravação do namespace XAML de XamlXmlWriter é complexo e não se limita a chamadas explícitas para WriteNamespace. Em vez disso, outras Write chamadas, como WriteStartObject, podem exigir que a declaração de namespace seja gravada em pontos específicos na estrutura do nó. O gravador XAML gera um prefixo por sua própria lógica ou usa informações do INamespacePrefixLookup serviço para determinar um prefixo preferencial. Além disso, chamadas explícitas WriteNamespace podem adiar ou não retornar nada se a declaração de namespace XAML já for aplicável e declarada em outro lugar.

Exceções do método Write

As exceções geradas pelos XamlXmlWriterWrite métodos normalmente InvalidOperationException são ou XamlXmlWriterException.

Um InvalidOperationException geralmente indica que um leitor XAML passou uma estrutura de nó inválida para o fluxo de nó XAML. Nesse caso, a estrutura do nó é inválida por motivos que não estão relacionados à validação de um esquema XAML ou a um contexto de esquema XAML. Em vez disso, o fluxo de nó é inválido em sua forma básica. Por exemplo, se uma implementação de leitor XAML com falha gerasse um fluxo de nós XAML que continha dois nós consecutivos StartObject , a tentativa de chamar o segundo WriteStartObject geraria um InvalidOperationException. Todos os gravadores XAML considerariam essa operação inválida. Outro exemplo de um InvalidOperationException é quando as informações de namespace XAML não estão disponíveis por meio do contexto de esquema XAML que se aplica à posição atual do fluxo de nó.

Um XamlXmlWriterException indica uma exceção em que essa implementação de gravador XAML específica opta por lançar uma exceção com base em sua funcionalidade pretendida. Um XamlXmlWriterException pode indicar casos específicos em que um XamlXmlWriter viola seu próprio estado ou configurações. Por exemplo, um XamlXmlWriterException pode resultar de tentativas de gravar informações de namespace XAML em uma posição que o XamlXmlWriter e seu formato de serialização não dão suporte ou gravação de membros duplicados quando a instância o XamlXmlWriterSettings proíbe.

Construtores

XamlXmlWriter(Stream, XamlSchemaContext)

Inicializa uma nova instância da classe XamlXmlWriter de um fluxo.

XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings)

Inicializa uma nova instância da classe XamlXmlWriter de um fluxo usando um objeto de configurações do gravador.

XamlXmlWriter(TextWriter, XamlSchemaContext)

Inicializa uma nova instância da classe XamlXmlWriter de uma base TextWriter.

XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializa uma nova instância da classe XamlXmlWriter de uma base TextWriter usando um objeto de configurações.

XamlXmlWriter(XmlWriter, XamlSchemaContext)

Inicializa uma nova instância da classe XamlXmlWriter de uma base XmlWriter.

XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings)

Inicializa uma nova instância da classe XamlXmlWriter de uma base XmlWriter usando um objeto de configurações.

Propriedades

IsDisposed

Obtém se Dispose(Boolean) foi chamado.

(Herdado de XamlWriter)
SchemaContext

Obtém o contexto do esquema XAML que esse XamlXmlWriter usa para processamento.

Settings

Obtém as configurações do gravador que esse XamlXmlWriter usa para processamento de XAML.

Métodos

Close()

Fecha o objeto do gravador de XAML.

(Herdado de XamlWriter)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo XamlXmlWriter e, opcionalmente, libera os recursos gerenciados.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Flush()

Chama o método Flush do XmlWriter ou TextWriter subjacente, que grava tudo o que está no buffer no momento e, em seguida, fecha o gravador.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WriteEndMember()

Grava um nó de membro final XAML no XmlWriter ou TextWriter subjacente. Gera uma exceção se a posição atual do fluxo do nó XAML não estiver dentro de um membro ou se o estado do gravador interno não for compatível com a gravação a de um membro final.

WriteEndObject()

Grava um nó de objeto final XAML no XmlWriter ou TextWriter subjacente. Gera uma exceção se a posição atual do fluxo do nó XAML que está sendo processada é incompatível com a gravação de um objeto final.

WriteGetObject()

Grava um objeto para casos em que o objeto especificado é um valor padrão ou implícito da propriedade que está sendo gravada, em vez de ser especificada como um valor de objeto no conjunto de nó XAML de entrada.

WriteNamespace(NamespaceDeclaration)

Grava informações de namespace no XmlWriter ou TextWriter subjacente. Pode gerar uma exceção para determinados estados, no entanto, pode, em vez disso, adiar a gravação das informações de namespace até que o gravador e o fluxo do nó XAML que está sendo processado atinjam uma posição em que uma declaração de namespace XAML possa ser inserida.

WriteNode(XamlReader)

Executa a comutação com base no tipo de nó do leitor de XAML (NodeType) e chama o método Write relevante para a implementação de gravador.

(Herdado de XamlWriter)
WriteStartMember(XamlMember)

Grava um nó de membro inicial XAML no XmlWriter ou TextWriter subjacente. Gera uma exceção se a posição atual do fluxo do nó XAML estiver dentro de outro membro ou se ele não estiver em um estado de escopo ou gravador em que um membro inicial pode ser gravado.

WriteStartObject(XamlType)

Grava um nó de objeto inicial XAML no XmlWriter ou TextWriter subjacente. Gera uma exceção se a posição atual do fluxo do nó XAML não está em um escopo em que um objeto inicial pode ser gravado ou se o gravador não está em um estado que pode gravar um objeto inicial.

WriteValue(Object)

Grava um nó de valor XAML no XmlWriter ou TextWriter subjacente. Gera uma exceção se a posição atual do fluxo do nó XAML for inválida para gravar um valor ou o gravador está em um estado em que não é possível gravar um valor.

Implantações explícitas de interface

IDisposable.Dispose()

Consulte Dispose().

(Herdado de XamlWriter)

Aplica-se a

Confira também