XmlReader.ReadValueChunk(Char[], Int32, Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
.
- count
- Int32
Maksymalna liczba znaków do skopiowania do buforu. Rzeczywista liczba skopiowanych znaków jest zwracana z tej metody.
Zwraca
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.