XamlXmlWriter Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Utiliza uma TextWriter classe de suporte XmlWriter para escrever um fluxo de nó XAML numa forma serializada de texto ou de 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
Observações
Esta classe é tipicamente usada em cenários de serialização.
Como usar o XamlXmlWriter
A XamlWriter API possui vários métodos que escrevem diferentes tipos de nós XAML. Coletivamente, estes são referidos na documentação como os Write métodos de um XamlWriter.
XamlXmlWriter utiliza várias classes de estado internas para determinar o que fazer quando uma das suas Write implementações é chamada. Uma Write chamada utiliza os estados para determinar se o elemento, atributo ou valor solicitado pode ser escrito, ou se uma exceção é lançada. Por exemplo, se chamar WriteEndObject e o estado da XamlXmlWriter posição atual do nó estiver num valor ou dentro de um membro, é lançada uma exceção. Normalmente, os chamadores da XamlXmlWriter API devem estar atentos ao tipo do nó XAML atual que provém do leitor XAML e do fluxo de nós XAML. Com base neste conhecimento, os utilizadores devem evitar ligar Write APIs que não sejam relevantes para o tipo atual de nó.
Espaços de nomes XAML e XamlXmlWriter
O comportamento de escrita em espaços de nomes 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 do espaço de nomes seja escrita em pontos específicos da estrutura do nó. O escritor XAML ou gera um prefixo pela sua própria lógica, ou utiliza informação do INamespacePrefixLookup serviço para determinar um prefixo preferido. Além disso, chamadas explícitas WriteNamespace podem adiar ou não devolver nada se a declaração do espaço de nomes XAML já for aplicável e declarada noutro local.
Exceções de Método de Escrita
As exceções lançadas pelos XamlXmlWritermétodos são tipicamente ou WriteInvalidOperationException.XamlXmlWriterException
An InvalidOperationException indica frequentemente que um leitor XAML passou uma estrutura de nós inválida para o fluxo de nós XAML. Neste caso, a estrutura do nó é inválida por razões que não estão relacionadas com a validação de um esquema XAML ou de um contexto de esquema XAML. Antes, o fluxo de nós é inválido na sua forma básica. Por exemplo, se uma implementação defeituosa de leitor XAML gerasse um fluxo de nós XAML que continha dois nós consecutivos StartObject , a tentativa de chamar o segundo WriteStartObject lançaria um InvalidOperationException. Todos os escritores XAML considerariam tal operação inválida. Outro exemplo de um InvalidOperationException é quando a informação do namespace XAML não está disponível através do contexto do esquema XAML que se aplica à posição atual do fluxo de nós.
A XamlXmlWriterException indica uma exceção em que esta implementação específica de escritor XAML escolhe lançar uma exceção com base na sua funcionalidade pretendida. A XamlXmlWriterException pode indicar casos específicos em que o XamlXmlWriter A viola o seu próprio estado ou definições. Por exemplo, pode resultar XamlXmlWriterException de tentativas de escrever informação do espaço de nomes XAML numa posição que o XamlXmlWriter e o seu formato de serialização não suportam, ou de escrever membros duplicados quando as instâncias XamlXmlWriterSettings o proíbem.
Construtores
| Name | Description |
|---|---|
| XamlXmlWriter(Stream, XamlSchemaContext, XamlXmlWriterSettings) |
Inicializa uma nova instância da XamlXmlWriter classe a partir de um stream usando um objeto de definições de escritor. |
| XamlXmlWriter(Stream, XamlSchemaContext) |
Inicializa uma nova instância da XamlXmlWriter classe a partir de um fluxo. |
| XamlXmlWriter(TextWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inicializa uma nova instância da XamlXmlWriter classe a partir de uma TextWriter base usando um objeto de definições. |
| XamlXmlWriter(TextWriter, XamlSchemaContext) |
Inicializa uma nova instância da XamlXmlWriter classe a partir de uma TextWriter base. |
| XamlXmlWriter(XmlWriter, XamlSchemaContext, XamlXmlWriterSettings) |
Inicializa uma nova instância da XamlXmlWriter classe a partir de uma XmlWriter base usando um objeto de definições. |
| XamlXmlWriter(XmlWriter, XamlSchemaContext) |
Inicializa uma nova instância da XamlXmlWriter classe a partir de uma XmlWriter base. |
Propriedades
| Name | Description |
|---|---|
| IsDisposed |
Percebe se Dispose(Boolean) foi chamado. (Herdado de XamlWriter) |
| SchemaContext |
Obtém o contexto do esquema XAML que este XamlXmlWriter utiliza para o processamento. |
| Settings |
Obtém as definições de escritor que isto XamlXmlWriter usa para processamento XAML. |
Métodos
| Name | Description |
|---|---|
| Close() |
Fecha o objeto escritor XAML. (Herdado de XamlWriter) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados por XamlXmlWriter e, opcionalmente, liberta os recursos geridos. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Flush() |
Chama o |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| WriteEndMember() |
Escreve um nó XAML membro final no subjacente XmlWriter ou TextWriter. Lança uma exceção se a posição atual do fluxo de nó XAML não estiver dentro de um membro, ou se o estado interno do escritor não suportar a escrita para um membro final. |
| WriteEndObject() |
Escreve um nó de objeto final XAML no subjacente XmlWriter ou TextWriter. Lança uma exceção se a posição atual do fluxo de nó XAML que está a ser processado for incompatível com a escrita de um objeto final. |
| WriteGetObject() |
Escreve um objeto para casos em que o objeto especificado é um valor padrão ou implícito da propriedade que está a ser escrita, em vez de ser especificado como um valor de objeto no conjunto de nós XAML de entrada. |
| WriteNamespace(NamespaceDeclaration) |
Escreve informação de namespace no subjacente XmlWriter ou TextWriter. Pode ser feita uma exceção para certos estados; no entanto, pode antes adiar a escrita da informação do namespace até que o escritor e o fluxo de nós XAML que está a ser processado atinjam uma posição onde uma declaração de namespace XAML possa ser inserida. |
| WriteNode(XamlReader) |
Realiza comutações com base no tipo de nó a partir do leitor XAML (NodeType) e chama o método relevante |
| WriteStartMember(XamlMember) |
Escreve um nó membro inicial XAML no subjacente XmlWriter ou TextWriter. Lança uma exceção se a posição atual do fluxo de nó XAML estiver dentro de outro membro, ou se não estiver num estado de âmbito ou escritor onde um membro inicial possa ser escrito. |
| WriteStartObject(XamlType) |
Escreve um nó de início de objeto XAML no subjacente XmlWriter ou TextWriter. Lança uma exceção se a posição atual do fluxo de nó XAML não estiver num âmbito onde um objeto inicial possa ser escrito, ou se o autor não estiver num estado que possa escrever um objeto inicial. |
| WriteValue(Object) |
Escreve um nó de valor XAML no subjacente XmlWriter ou TextWriter. Lança uma exceção se a posição atual do fluxo de nó XAML for inválida para escrever um valor, ou se o escritor estiver num estado onde um valor não pode ser escrito. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Consulte Dispose(). (Herdado de XamlWriter) |