XamlObjectWriter Classe

Definição

Cria um grafo de objetos a partir de um fluxo de nós 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

Observações

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

Scope

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

Uma técnica possível para acompanhar o âmbito num custom XamlObjectWriter é alinhar as ações do nó com uma stack ou classe de frame. A pilha ou frame pode registar o push e o pop para cada nível de profundidade do modelo de objeto que é introduzido ou retirado enquanto escreve XamlObjectWriter o grafo de objetos.

Chamadas de retorno

Para suportar cenários intermédios e avançados XamlObjectWriter , o mecanismo de escrever um grafo de objeto fornece pontos de entrada de callback que ocorrem quando um XamlObjectWriter commit ou está prestes a cometer certas ações. Alguns callbacks estão ativados nas definições e não são específicos do tipo de objeto ou do membro que está a ser escrito; no entanto, a informação de callback está frequentemente disponível em contexto ou está nos dados do evento enviados através do callback. Segue-se uma lista de callbacks relevantes:

  • O callback declarado por AfterBeginInitHandler é invocado quando o âmbito passa para um novo objeto e na BeginInit fase de vida útil do objeto para cada objeto criado.

  • O callback declarado por AfterEndInitHandler é invocado quando o âmbito passa para um novo objeto e na EndInit fase de vida útil do objeto para cada objeto criado.

  • O callback declarado por BeforePropertiesHandler é invocado quando o âmbito começa num objeto, e ocorre quando a primeira WriteStartMember chamada a esse âmbito é feita mas ainda não foi comprometida.

  • O callback que é declarado AfterPropertiesHandler por é invocado quando o âmbito começa num objeto, e ocorre quando a WriteEndObject chamada para esse âmbito é feita mas ainda não foi confirmada.

  • O callback declarado por XamlSetValueHandler é invocado quando OnSetValue é chamado.

Escrita de Chaves de Dicionário

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

Cheques para Descartados

Os escritores XAML são potencialmente usados para operações diferidas ou quando uma chamada é feita contra uma instância de escritor XAML que foi eliminada entretanto. Várias APIs podem XamlObjectWriter incluir ObjectDisposedException estes casos.

Construtores

Name Description
XamlObjectWriter(XamlSchemaContext, XamlObjectWriterSettings)

Inicializa uma nova instância da XamlObjectWriter classe usando o contexto que é usado por a XamlReader e as suas definições.

XamlObjectWriter(XamlSchemaContext)

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

Propriedades

Name Description
IsDisposed

Percebe se Dispose(Boolean) foi chamado.

(Herdado de XamlWriter)
Result

Fica com o último objeto que foi escrito. Normalmente só é chamado quando o fluxo de nós está no seu fim e o grafo-objeto está completo.

RootNameScope

Recebe o INameScope serviço que mantém o namescope XAML para a raiz absoluta do nó do escritor de objetos XAML.

SchemaContext

Obtém o contexto do esquema XAML ativo.

ShouldProvideLineInfo

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

Métodos

Name Description
Clear()

Reinicia todos os frames possíveis e limpa o grafo objeto.

Close()

Fecha o objeto escritor XAML.

(Herdado de XamlWriter)
Dispose(Boolean)

Liberta os recursos não geridos usados pelo XamlObjectWriter, e opcionalmente, liberta os recursos geridos.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

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

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

OnAfterEndInit(Object)

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

OnAfterProperties(Object)

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

OnBeforeProperties(Object)

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

OnSetValue(Object, XamlMember, Object)

Invoca qualquer XamlSetValueHandler método referenciado que esteja associado a XamlObjectWriterSettings para este autor, desde que handled em XamlSetValueEventArgs evento os dados não truesejam .

SetLineInfo(Int32, Int32)

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

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
WriteEndMember()

Fecha o âmbito do membro atual e pode escrever o valor do âmbito do membro enquanto este fecha. O novo âmbito torna-se o âmbito do objeto pai do membro.

WriteEndObject()

Fecha o âmbito atual do objeto no escritor. O novo âmbito do objeto torna-se o escopo do membro pai.

WriteGetObject()

Escreve o conceito StartObject no grafo-objeto quando o objeto especificado é um valor padrão ou implícito da propriedade pai. O valor implícito provém da informação obtida do contexto do esquema XAML e da informação do tipo de apoio, 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 próximo âmbito de objeto ou âmbito de membro.

WriteNode(XamlReader)

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

(Herdado de XamlWriter)
WriteStartMember(XamlMember)

Escreve um novo nó membro no âmbito do objeto atual, e o âmbito torna-se um novo escopo membro.

WriteStartObject(XamlType)

Escreve um nó objeto no âmbito atual e define o escopo para um novo âmbito de objeto.

WriteValue(Object)

Escreve um valor para o âmbito do membro atual. Se o âmbito atual estiver dentro de uma coleção, dicionário ou objeto de array, o valor deve ser adicionado à coleção, dicionário ou array.

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Consulte Dispose().

(Herdado de XamlWriter)

Aplica-se a

Ver também