Partilhar via


XamlObjectWriter Classe

Definição

Cria um grafo de objeto com base em um fluxo de nó XAML de origem.

public ref class XamlObjectWriter : System::Xaml::XamlWriter, System::Xaml::IXamlLineInfoConsumer
public class XamlObjectWriter : System.Xaml.XamlWriter, System.Xaml.IXamlLineInfoConsumer
type XamlObjectWriter = class
    inherit XamlWriter
    interface IXamlLineInfoConsumer
Public Class XamlObjectWriter
Inherits XamlWriter
Implements IXamlLineInfoConsumer
Herança
XamlObjectWriter
Implementações

Comentários

Os Write métodos de XamlObjectWriter implementar um padrão para que o XamlObjectWriter uso XamlWriter seja definido pelo WriteNode método. WriteNode a lógica alterna entre os Write métodos, dependendo de qual tipo de nó está na posição atual no leitor.

Escopo

Um XamlObjectWriter tem um conceito de escopo; ou seja, mantém XamlObjectWriter um ponto conceitual de referência em seu grafo de objeto de saída. Para um escopo específico, determinadas operações podem ser válidas ou inválidas ou produzir um resultado sem operação. Por exemplo, se você chamar WriteStartMember para escrever diretivas para inicialização em um objeto que já existe como uma instância, a implementação padrão gerará uma exceção.

Uma técnica possível para controlar o escopo em um personalizado XamlObjectWriter é alinhar as ações do nó com uma classe de pilha ou quadro. A pilha ou quadro pode controlar o push e o pop para cada nível de profundidade do modelo de objeto que é inserido ou encerrado enquanto grava o XamlObjectWriter grafo do objeto.

Retornos de chamada

Para dar suporte a cenários intermediários e avançados XamlObjectWriter , o mecanismo de gravação de um grafo de objeto fornece pontos de entrada de retorno de chamada que ocorrem quando um XamlObjectWriter commit é confirmado ou está prestes a confirmar determinadas ações. Alguns retornos de chamada são habilitados nas configurações e não são específicos do tipo de objeto ou do membro que está sendo gravado; no entanto, as informações de retorno de chamada geralmente estão disponíveis no contexto ou estão nos dados de evento enviados por meio do retorno de chamada. Veja a seguir uma lista de retornos de chamada relevantes:

  • O retorno de chamada declarado é AfterBeginInitHandler invocado quando o escopo vai para um novo objeto e na BeginInit fase de tempo de vida do objeto para cada objeto criado.

  • O retorno de chamada declarado é AfterEndInitHandler invocado quando o escopo vai para um novo objeto e na EndInit fase de tempo de vida do objeto para cada objeto criado.

  • O retorno de chamada declarado é BeforePropertiesHandler invocado quando o escopo é iniciado em um objeto e ocorre quando a primeira WriteStartMember chamada para esse escopo de objeto é feita, mas ainda não confirmada.

  • O retorno de chamada declarado é AfterPropertiesHandler invocado quando o escopo é iniciado em um objeto e acontece quando a WriteEndObject chamada para esse escopo de objeto é feita, mas ainda não confirmada.

  • O retorno de chamada declarado por XamlSetValueHandler é invocado quando OnSetValue é chamado.

Escrevendo chaves de dicionário

A implementação padrão de conversão de XamlObjectWriter tipo de suporte nas restrições de um Dictionary<TKey,TValue> antes de o conteúdo do dicionário ser adicionado ao grafo de objeto. Dessa forma, um dicionário genérico pode ser chaveado em tempo de execução por objetos e pode corresponder ao comportamento genérico Add e indexador relevante. No entanto, como implementado para a base XamlObjectWriter, essa funcionalidade existe apenas para a criação do grafo de objeto da classe base Dictionary<TKey,TValue> e não para classes derivadas de Dictionary<TKey,TValue>.

Verifica se há descarte

Os gravadores XAML são potencialmente usados para operações adiadas ou onde uma chamada é feita contra uma instância de gravador XAML que foi descartada nesse ínterim. Várias APIs de XamlObjectWriter poderão ser geradas ObjectDisposedException nesses casos.

Construtores

XamlObjectWriter(XamlSchemaContext)

Inicializa uma nova instância da classe XamlObjectWriter usando o contexto de esquema XAML usado por um XamlReader.

XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicializa uma nova instância da classe XamlObjectWriter usando o contexto de esquema XML usado por um XamlReader e suas configurações.

Propriedades

IsDisposed

Obtém se Dispose(Boolean) foi chamado.

(Herdado de XamlWriter)
Result

Obtém o último objeto que foi gravado. Normalmente chamado apenas quando o fluxo do nó é o final e o grafo do objeto é concluído.

RootNameScope

Obtém o serviço INameScope que mantém o namescope XAML para a raiz do nó absoluto do gravador de objeto XAML.

SchemaContext

Obtém o contexto do esquema XAML ativo.

ShouldProvideLineInfo

Obtém um valor que informa se um serviço de informações de linha deve fornecer valores e, portanto, também deve chamar o método SetLineInfo(Int32, Int32) quando ele é relevante.

Métodos

Clear()

Redefine todos os quadros possíveis e limpa o grafo de objeto.

Close()

Fecha o objeto do gravador de XAML.

(Herdado de XamlWriter)
Dispose(Boolean)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
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)
OnAfterBeginInit(Object)

Invoca qualquer método AfterBeginInitHandler que está associado a XamlObjectWriterSettings para este XamlObjectWriter.

OnAfterEndInit(Object)

Invoca qualquer método AfterEndInitHandler que está associado a XamlObjectWriterSettings para este XamlObjectWriter.

OnAfterProperties(Object)

Invoca qualquer método AfterPropertiesHandler referenciado que está associado a XamlObjectWriterSettings para este XamlObjectWriter.

OnBeforeProperties(Object)

Invoca qualquer método BeforePropertiesHandler referenciado que está associado a XamlObjectWriterSettings para este XamlObjectWriter.

OnSetValue(Object, XamlMember, Object)

Invoca qualquer método XamlSetValueHandler referenciado que está associado a XamlObjectWriterSettings para este gravador, contanto que handled nos dados de evento XamlSetValueEventArgs não seja true.

SetLineInfo(Int32, Int32)

Implementa SetLineInfo(Int32, Int32) e fornece informações de linha para exceções.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
WriteEndMember()

Fecha o escopo do membro atual e pode gravar o valor de escopo do membro enquanto ele é fechado. O novo escopo se torna o escopo do objeto pai do membro.

WriteEndObject()

Fecha o escopo do objeto atual no gravador. O novo escopo de objeto se torna o escopo do membro pai.

WriteGetObject()

Grava o StartObject conceitual no grafo de objeto quando o objeto especificado é um valor padrão ou implícito da propriedade pai. O valor implícito vem de informações que são obtidas com base no contexto do esquema XAML e informações de tipo de suporte, em vez de ser especificado como um valor de objeto no conjunto de nós XAML de entrada.

WriteNamespace(NamespaceDeclaration)

Define uma declaração de namespace que se aplica ao seguinte escopo de objeto ou escopo do membro.

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 novo nó de membro no escopo do objeto atual e o escopo se torna um novo escopo do membro.

WriteStartObject(XamlType)

Grava um nó de objeto no escopo atual e define o escopo para um novo escopo de objeto.

WriteValue(Object)

Grava um valor no escopo de membro atual. Se o escopo atual estiver dentro de uma coleção, um dicionário ou um objeto de matriz, o valor deverá ser adicionado à coleção, dicionário ou matriz.

Implantações explícitas de interface

IDisposable.Dispose()

Consulte Dispose().

(Herdado de XamlWriter)

Aplica-se a

Confira também