Partilhar via


XamlReader.ReadSubtree Método

Definição

Retorna um XamlReader que se baseia no XamlReader atual, no qual o XamlReader retornado é usado para iterar em uma subárvore da estrutura de nós XAML.

public:
 virtual System::Xaml::XamlReader ^ ReadSubtree();
public virtual System.Xaml.XamlReader ReadSubtree ();
abstract member ReadSubtree : unit -> System.Xaml.XamlReader
override this.ReadSubtree : unit -> System.Xaml.XamlReader
Public Overridable Function ReadSubtree () As XamlReader

Retornos

XamlReader

Uma nova instância de leitor de XAML da subárvore.

Comentários

Esse método tem uma implementação padrão e retorna um valor válido XamlReader. O retornado XamlReader é uma classe interna que restringe determinadas XamlReader ações. As restrições são consistentes com a finalidade de ler apenas uma subárvore dimensionada de uma fonte maior para um conjunto de nós XAML e de retornar o fim do arquivo ou null no nó atual quando a subárvore for encerrada.

Em geral, você deve verificar o nó atual da inicial Read para determinar se você precisa de um leitor de subárvores. Como você verifica se isso pode ser específico da implementação; no entanto, evite criar vários leitores de subárvores para cada subárvore. Além disso, evite invocar um leitor de subárvores para determinados casos de nó (por exemplo, por NamespaceDeclaration) que não possam conter uma subárvore de nós.

Depois de obter um leitor de subárvores, você deve chamá-lo Read para obter um nó atual (ou chamar Skip para obter um próximo nó). Você não obtém automaticamente uma posição de nó inicial do leitor de subárvores ao criá-la.

O leitor que você obtém chamando ReadSubtree dessa implementação padrão é uma classe interna. A classe interna baseia seu comportamento na XamlReader implementação que está sendo usada quando ReadSubtree é chamada. A finalidade da classe interna é encapsular o Read comportamento de passagem geral e geral. A passagem permanece dentro da subárvore pretendida mantendo o controle de StartMember/EndMember pares ou StartObject/EndObject pares. Ele também retorna false corretamente para Read e true para IsEof quando o leitor está no final da subárvore, conforme definido por seu ponto de entrada. Em geral, você pressupõe que qualquer XamlReader API que você chamar de um leitor de subárvore tenha a mesma implementação que a geral XamlReader , exceto pelo comportamento delimitadora de passagem.

No entanto, ReadSubtree é virtual. Portanto, uma implementação específica XamlReader pode fornecer um comportamento diferente do XamlReader comportamento do wrapper interno; e uma XamlReader implementação pode até mesmo desabilitar a funcionalidade do leitor de subárvores retornando NotImplementedException ou outras exceções.

Aplica-se a