Condividi tramite


XamlReader.ReadSubtree Metodo

Definizione

Restituisce un oggetto XamlReader basato sull'oggetto XamlReader corrente, dove l'oggetto XamlReader restituito viene utilizzato per scorrere un sottoalbero della struttura dei nodi 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

Restituisce

Nuova istanza del reader XAML per il sottoalbero.

Commenti

Questo metodo ha un'implementazione predefinita e restituisce un oggetto valido XamlReader. L'oggetto restituito XamlReader è una classe interna che limita determinate XamlReader azioni. Le restrizioni sono coerenti con lo scopo di leggere solo un sottoalbero dimensionato di un'origine più grande per un set di nodi XAML e di restituire la fine del file o null nel nodo corrente quando il sottoalbero viene chiuso.

In genere, è necessario controllare il nodo corrente dall'oggetto iniziale Read per determinare se è necessario un lettore di sottoalbero. Come si verifica questo può essere specifico dell'implementazione; Tuttavia, evitare di creare più lettori di sottoalbero per ogni sottoalbero. Evitare inoltre di richiamare un lettore di sottoalbero per determinati casi di nodo (ad esempio, per NamespaceDeclaration) che non possono contenere un sottoalbero di nodi.

Dopo aver ottenuto un lettore di sottoalbero, è necessario chiamarlo Read per ottenere un nodo corrente (o chiamare Skip per ottenere un nodo successivo). Non si ottiene automaticamente una posizione iniziale del nodo dal lettore di sottoalbero durante la creazione.

Il lettore ottenuto chiamando ReadSubtree da questa implementazione predefinita è una classe interna. La classe interna basa il proprio comportamento sull'implementazione XamlReader usata quando ReadSubtree viene chiamato. Lo scopo della classe interna è eseguire il wrapping del Read comportamento di attraversamento generale e . L'attraversamento rimane all'interno del sottoalbero desiderato tenendo traccia di StartMember/EndMember coppie o StartObject/EndObject coppie. Restituisce false anche correttamente per Read e true per IsEof quando il lettore si trova alla fine del sottoalbero, come definito dal relativo punto di ingresso. In generale, si presuppone che qualsiasi XamlReader API chiamata da un lettore di sottoalbero abbia la stessa implementazione di quella complessiva XamlReader , ad eccezione del comportamento di delimitazione di attraversamento.

Tuttavia, ReadSubtree è virtuale. Pertanto, un'implementazione specifica XamlReader può fornire un comportamento diverso dal comportamento del XamlReader wrapper interno e un'implementazione XamlReader può anche disabilitare la funzionalità lettore sottoalbero restituendo NotImplementedException o altre eccezioni.

Si applica a