XamlReader.ReadSubtree Metoda

Definicja

Zwraca element XamlReader oparty na bieżącym XamlReaderobiekcie , gdzie zwracany XamlReader element jest używany do iterowania przez poddrzewo struktury węzła 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

Zwraca

Nowe wystąpienie czytnika XAML dla poddrzewa.

Uwagi

Ta metoda ma domyślną implementację i zwraca prawidłową XamlReaderwartość . Zwrócona XamlReader klasa jest klasą wewnętrzną, która ogranicza określone XamlReader akcje. Ograniczenia są zgodne z celem odczytywania tylko wymiarowego poddrzewa większego źródła dla zestawu węzłów XAML oraz zwracania końca pliku lub null w bieżącym węźle po wyjściu poddrzewa.

Ogólnie rzecz biorąc, należy sprawdzić bieżący węzeł z początkowego Read , aby określić, czy potrzebujesz czytnika poddrzew. Jak to sprawdzić, może być specyficzne dla implementacji; należy jednak unikać tworzenia wielu czytników poddrzewa dla każdego poddrzewa. Ponadto należy unikać wywoływania czytnika poddrzewa dla niektórych przypadków węzłów (na przykład dla NamespaceDeclaration), które nie mogą zawierać poddrzewa węzłów.

Po uzyskaniu czytnika poddrzewa należy wywołać Read go w celu uzyskania bieżącego węzła (lub wywołania Skip w celu uzyskania następnego węzła). Nie uzyskujesz automatycznie początkowej pozycji węzła z czytnika poddrzewa podczas jego tworzenia.

Czytelnik uzyskany przez wywołanie ReadSubtree z tej domyślnej implementacji jest klasą wewnętrzną. Klasa wewnętrzna opiera swoje zachowanie na implementacji używanej XamlReader podczas ReadSubtree wywoływanej metody . Celem klasy wewnętrznej jest opakowywanie Read zachowania przechodzenia i ogólnego. Przechodzenie pozostaje w zamierzonym poddrzewie przez śledzenie StartMember/EndMember par lub StartObject/EndObject par. Jest również poprawnie zwracany false dla elementu Read i true dla IsEof , gdy czytnik znajduje się na końcu poddrzewa, zgodnie z definicją punktu wejścia. Ogólnie rzecz biorąc, przyjęto założenie, że każdy XamlReader wywoływany interfejs API z czytnika poddrzewa ma taką samą implementację, jak ogólnie XamlReader , z wyjątkiem zachowania ograniczenia przechodzenia.

ReadSubtree Jest jednak wirtualny. W związku z tym konkretna XamlReader implementacja może zapewnić zachowanie, które różni się od wewnętrznego XamlReader zachowania otoki, a implementacja XamlReader może nawet wyłączyć funkcjonalność czytnika poddrzewa, zwracając NotImplementedException lub inne wyjątki.

Dotyczy