XmlReader.ReadValueChunk(Char[], Int32, Int32) Metoda

Definicja

Odczytuje duże strumienie tekstu osadzone w dokumencie XML.

public:
 virtual int ReadValueChunk(cli::array <char> ^ buffer, int index, int count);
public virtual int ReadValueChunk (char[] buffer, int index, int count);
abstract member ReadValueChunk : char[] * int * int -> int
override this.ReadValueChunk : char[] * int * int -> int
Public Overridable Function ReadValueChunk (buffer As Char(), index As Integer, count As Integer) As Integer

Parametry

buffer
Char[]

Tablica znaków, która służy jako bufor, do którego jest zapisywana zawartość tekstu. Ta wartość nie może być wartością null.

index
Int32

Przesunięcie w buforze, w którym XmlReader można rozpocząć kopiowanie wyników.

count
Int32

Maksymalna liczba znaków do skopiowania do buforu. Rzeczywista liczba skopiowanych znaków jest zwracana z tej metody.

Zwraca

Int32

Liczba znaków odczytanych do buforu. Wartość zero jest zwracana, gdy nie ma więcej zawartości tekstowej.

Wyjątki

Bieżący węzeł nie ma wartości (HasValue to false).

-lub-

Metoda XmlReader została wywołana przed zakończeniem poprzedniej operacji asynchronicznej. W takim przypadku InvalidOperationException jest zgłaszany komunikat "Operacja asynchroniczna jest już w toku".

Wartość elementu buffer to null.

Indeks do buforu lub indeks + liczba jest większy niż przydzielony rozmiar buforu.

Implementacja XmlReader nie obsługuje tej metody.

Dane XML nie są poprawnie sformułowane.

Uwagi

Ta metoda umożliwia odczytywanie bardzo dużych strumieni tekstu osadzonych w dokumencie XML w sposób przesyłania strumieniowego, czyli niewielka liczba znaków jednocześnie zamiast przydzielania pojedynczego ciągu dla całej wartości. Tę metodę można wywołać w dowolnym węźle, który ma wartość (HasValue to true), jednak rzeczywiste przesyłanie strumieniowe wartości węzła ma miejsce tylko wtedy, gdy wywołano metodę w przypadku tekstu, odstępu i znaczących węzłów odstępu. Inne wartości typu węzła są buforowane, w tym atrybuty i węzły CDATA.

Ta metoda zwraca tylko zawartość Value właściwości i nie przenosi obiektu XmlReader.

Ta metoda odczytuje określoną liczbę znaków (count) wartości węzła do bufora znaków (buffer) z określonym przesunięciem (index) i zwraca liczbę znaków zapisanych w buforze. Zwraca wartość 0 , gdy osiągnęła koniec wartości. Nie można go ponownie uruchomić w celu ponownego odczytania wartości.

Między wywołaniami ReadValueChunk XmlReader właściwości nie zmieniają się z wyjątkiem Value właściwości . Value Po korzystaniu z właściwości może zwrócić wartość częściową (z znakami, które nie zostały jeszcze zwrócone przez ReadValueChunk) lub pełną wartość w zależności od implementacji. XmlReader Wszystkie implementacje w System.Xml przestrzeni nazw zwracają wartość częściową implementacji Value właściwości.

Dowolną metodę Read można wywołać między wywołaniami metody ReadValueChunk. W takim przypadku XmlReader zostaną pominięte ruchy do następnego XmlNodeType w strumieniu i wszystkie znaki, które nie zostały jeszcze zwrócone.

Może wystąpić przypadek, gdy ReadValueChunk zwraca wartość mniejszą niż żądana liczba znaków. Jeśli na przykład masz 200-znakową wartość z parą zastępczą na pozycjach 127 i 128, a wywołano ReadValueChunk metodę z buforem 128 znaków, wywołanie metody zwróci 127 znaków zamiast żądanego 128. Para zastępcza zostanie następnie zwrócona w następnym ReadValueChunk wywołaniu. W tym przypadku nie zwrócił żądanej 128 znaków, ReadValueChunk ponieważ spowodowałoby to niekompletną parę zastępczą na końcu buforu.

Aby uzyskać asynchroniczną wersję tej metody, zobacz ReadValueChunkAsync.

Dotyczy