Partilhar via


XamlXmlWriter Classe

Definição

Usa uma classe de suporte TextWriter ou XmlWriter para gravar um fluxo de 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

Essa classe normalmente é usada em cenários de serialização.

Como usar o XamlXmlWriter

A API XamlWriter tem vários métodos que gravam diferentes tipos de nós XAML. Coletivamente, eles são referidos na documentação como os métodos Write de um XamlWriter. XamlXmlWriter usa várias classes de estado internas para determinar o que fazer quando uma de suas implementações de Write é chamada. Uma chamada Write 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 do XamlXmlWriter posição do nó atual estiver em um valor ou dentro de um membro, uma exceção será gerada. Normalmente, os chamadores da API de XamlXmlWriter devem estar cientes do tipo do nó XAML atual que vem do leitor XAML e do fluxo de nós XAML. Com base nesse conhecimento, os chamadores devem evitar chamar APIs Write 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 chamadas Write, como WriteStartObject, podem exigir que a declaração de namespace seja gravada em pontos específicos da estrutura do nó. O gravador XAML gera um prefixo por sua própria lógica ou usa informações do serviço INamespacePrefixLookup para determinar um prefixo preferencial. Além disso, chamadas WriteNamespace explícitas 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 métodos XamlXmlWriterWrite normalmente são InvalidOperationException ou XamlXmlWriterException.

Um InvalidOperationException geralmente indica que um leitor de XAML passou uma estrutura de nó inválida para o fluxo de nós 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 gerou um fluxo de nó XAML que continha dois nós StartObject consecutivos, a tentativa de chamar o segundo WriteStartObject lançaria 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 específica do gravador XAML 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 gravar membros duplicados quando o XamlXmlWriterSettings proibi-lo da instância.

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 de 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 de esquema XAML que esse XamlXmlWriter usa para processamento.

Settings

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

Métodos

Close()

Fecha o objeto gravador 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 TextWritersubjacente, que grava qualquer coisa que esteja atualmente no buffer 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 Objectatual.

(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 TextWritersubjacente. Gera uma exceção se a posição atual do fluxo de nó XAML não estiver dentro de um membro ou se o estado do gravador interno não oferecer suporte à gravação em um membro final.

WriteEndObject()

Grava um nó de objeto final XAML no XmlWriter ou TextWritersubjacente. Gerará uma exceção se a posição atual do fluxo de nó XAML que está sendo processado for 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 escrita, em vez de ser especificado como um valor de objeto no conjunto de nós XAML de entrada.

WriteNamespace(NamespaceDeclaration)

Grava informações de namespace no XmlWriter ou TextWritersubjacente. Pode gerar uma exceção para determinados estados; no entanto, pode adiar a gravação das informações do namespace até que o gravador e o fluxo de 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 alternância com base no tipo de nó do leitor XAML (NodeType) e chama o método Write relevante para a implementação do gravador.

(Herdado de XamlWriter)
WriteStartMember(XamlMember)

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

WriteStartObject(XamlType)

Grava um nó de objeto de início XAML no XmlWriter ou TextWritersubjacente. Gera uma exceção se a posição atual do fluxo de nó XAML não estiver em um escopo em que um objeto inicial possa ser gravado ou se o gravador não estiver em um estado que possa gravar um objeto inicial.

WriteValue(Object)

Grava um nó de valor XAML no XmlWriter ou TextWritersubjacente. Gera uma exceção se a posição atual do fluxo de nó XAML for inválida para gravar um valor ou se o gravador estiver em um estado em que um valor não possa ser gravado.

Implantações explícitas de interface

IDisposable.Dispose()

Consulte Dispose().

(Herdado de XamlWriter)

Aplica-se a

Confira também