Compartir a través de


XamlReader.ReadSubtree Método

Definición

Devuelve un objeto XamlReader que se basa en el objeto XamlReader actual, donde el objeto XamlReader devuelto se usa para recorrer en iteración un subárbol de la estructura de nodos 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

Devoluciones

Nueva instancia de lector XAML para el subárbol.

Comentarios

Este método tiene una implementación predeterminada y devuelve un valor válido XamlReader. El devuelto XamlReader es una clase interna que restringe determinadas XamlReader acciones. Las restricciones son coherentes con el propósito de leer solo un subárbol dimensionado de un origen mayor para un conjunto de nodos XAML y devolver el final del archivo o null en el nodo actual cuando se cierra el subárbol.

Por lo general, debe comprobar el nodo actual desde el inicial Read para determinar si necesita un lector de subárbol. Cómo comprobar esto puede ser específico de la implementación; sin embargo, evite crear varios lectores de subárbol para cada subárbol. Además, evite invocar un lector de subárbol para determinados casos de nodo (por ejemplo, para NamespaceDeclaration) que no pueden contener un subárbol de nodos.

Después de obtener un lector de subárbol, debe llamar a Read en él para obtener un nodo actual (o llamar Skip a para obtener un nodo siguiente). No se obtiene automáticamente una posición inicial del nodo del lector de subárbol al crearla.

El lector que obtiene llamando ReadSubtree desde esta implementación predeterminada es una clase interna. La clase interna basa su comportamiento en la XamlReader implementación que se usa cuando ReadSubtree se llama a . El propósito de la clase interna es ajustar el Read comportamiento de recorrido general y . El recorrido permanece dentro del subárbol previsto mediante el seguimiento de StartMember/EndMember pares o StartObject/EndObject pares. También devuelve false correctamente para Read y true para IsEof cuando el lector está al final del subárbol, tal como se define en su punto de entrada. En general, se supone que cualquier XamlReader API que llame desde un lector de subárbol tiene la misma implementación que el general XamlReader , excepto el comportamiento delimitador transversal.

Sin embargo, ReadSubtree es virtual. Por lo tanto, una implementación específica XamlReader puede proporcionar un comportamiento que difiere del XamlReader comportamiento interno del contenedor; y una XamlReader implementación puede incluso deshabilitar la funcionalidad del lector de subárbol devolviendo NotImplementedException u otras excepciones.

Se aplica a