XamlXmlWriter Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Usa uma TextWriter classe ou XmlWriter suporte 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
Comentários
Essa classe normalmente é usada em cenários de serialização.
Como usar o 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 atual do XamlXmlWriter nó 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 que vem do leitor XAML e do fluxo de nós 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 XamlXmlWriter namespace XAML é 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ão 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 são ou InvalidOperationExceptionXamlXmlWriterException.
Geralmente InvalidOperationException , 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 gerasse um fluxo de nó 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ó.
Uma 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. Uma 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 formato de serialização 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
| Nome | Description |
|---|---|
| XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings) |
Inicializa uma nova instância da classe de XamlXmlWriter um fluxo usando um objeto de configurações de gravador. |
| XamlXmlWriter(Stream, XamlSchemaContext) |
Inicializa uma nova instância da classe de XamlXmlWriter um fluxo. |
| XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inicializa uma nova instância da XamlXmlWriter classe de uma TextWriter base usando um objeto de configurações. |
| XamlXmlWriter(TextWriter, XamlSchemaContext) |
Inicializa uma nova instância da XamlXmlWriter classe de uma TextWriter base. |
| XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inicializa uma nova instância da XamlXmlWriter classe de uma XmlWriter base usando um objeto de configurações. |
| XamlXmlWriter(XmlWriter, XamlSchemaContext) |
Inicializa uma nova instância da XamlXmlWriter classe de uma XmlWriter base. |
Propriedades
| Nome | Description |
|---|---|
| IsDisposed |
Obtém se Dispose(Boolean) foi chamado. (Herdado de XamlWriter) |
| SchemaContext |
Obtém o contexto de esquema XAML que isso XamlXmlWriter usa para processamento. |
| Settings |
Obtém as configurações de gravador que isso XamlXmlWriter usa para processamento XAML. |
Métodos
| Nome | Description |
|---|---|
| Close() |
Fecha o objeto gravador XAML. (Herdado de XamlWriter) |
| Dispose(Boolean) |
Libera os recursos não gerenciados usados XamlXmlWriter e, opcionalmente, libera os recursos gerenciados. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Flush() |
Chama o |
| 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 subjacente XmlWriter ou TextWriter. 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 subjacente XmlWriter ou TextWriter. 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 subjacente XmlWriter ou TextWriter. 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 relevante |
| WriteStartMember(XamlMember) |
Grava um nó de membro inicial XAML no subjacente XmlWriter ou TextWriter. 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 subjacente XmlWriter ou TextWriter. 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 subjacente XmlWriter ou TextWriter. 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
| Nome | Description |
|---|---|
| IDisposable.Dispose() |
Consulte Dispose(). (Herdado de XamlWriter) |