Freigeben über


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

Definition

Liest umfangreiche Streams von Text, der in ein XML-Dokument eingebettet ist.

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

Parameter

buffer
Char[]

Das Array von Zeichen, das als Puffer dient, in den der Textinhalt geschrieben wird. Dieser Wert darf nicht null sein.

index
Int32

Der Offset im Puffer, ab dem der XmlReader die Ergebnisse kopieren kann.

count
Int32

Die maximale Anzahl von Zeichen, die in den Puffer kopiert werden sollen. Diese Methode gibt die tatsächliche Anzahl der kopierten Zeichen zurück.

Gibt zurück

Die Anzahl der in den Puffer gelesenen Zeichen. Der Wert 0 (null) wird zurückgegeben, wenn kein weiterer Textinhalt vorhanden ist.

Ausnahmen

Der aktuelle Knoten verfügt über keinen Wert (HasValue ist false).

- oder -

Eine XmlReader-Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall wird InvalidOperationException mit der Meldung „Es wird bereits ein asynchroner Vorgang ausgeführt“ ausgelöst.

Der buffer-Wert ist null.

Der Index im Puffer oder Index + Anzahl übersteigen die Größe des zugeordneten Puffers.

Die XmlReader-Implementierung unterstützt diese Methode nicht.

Die XML-Daten sind nicht wohlgeformt.

Hinweise

Diese Methode ermöglicht das Lesen sehr großer Textströme, die in ein XML-Dokument eingebettet sind, auf Streamingmodus, d. h. eine kleine Anzahl von Zeichen gleichzeitig, anstatt eine einzelne Zeichenfolge für den gesamten Wert zuzuweisen. Diese Methode kann auf jedem Knoten aufgerufen werden, der einen Wert hat (HasValue ist true), aber das tatsächliche Streaming des Knotenwerts erfolgt nur, wenn für einen Text, Leerraum und signifikante Leerraumknoten aufgerufen wird. Andere Knotentypwerte werden zwischengespeichert, einschließlich Attributen und CDATA-Knoten.

Diese Methode gibt nur den Inhalt der Value -Eigenschaft zurück und verschebt nicht .XmlReader

Diese Methode liest die angegebene Anzahl von Zeichen (count) des Knotenwerts in einen Zeichenpuffer (buffer) an einem angegebenen Offset (index) und gibt die Anzahl der in den Puffer geschriebenen Zeichen zurück. Es gibt den 0 zurück, wenn er das Ende des Werts erreicht hat. Es kann nicht neu gestartet werden, um den Wert erneut zu lesen.

Zwischen den Aufrufen ReadValueChunk der XmlReader Eigenschaften ändern sich außer der Value -Eigenschaft keine Änderungen. Wenn auf die Value Eigenschaft zugegriffen wird, kann sie je nach Implementierung entweder einen Teilwert (mit noch nicht zurückgegebenen Zeichen) ReadValueChunkoder einen vollständigen Wert zurückgeben. XmlReader Alle Implementierungen im System.Xml Namespace geben einen Teilwert für die -Eigenschaftsimplementierung Value zurück.

Jede Read-Methode kann zwischen Aufrufen von ReadValueChunkaufgerufen werden. In diesem Fall werden die XmlReader Verschiebungen zur nächsten XmlNodeType im Stream und alle noch nicht zurückgegebenen Zeichen übersprungen.

Es kann vorkommen, dass ReadValueChunk weniger als die angeforderte Anzahl von Zeichen zurückgegeben wird. Wenn Sie beispielsweise einen 200 Zeichen langen Wert mit einem Ersatzpaar an den Positionen 127 und 128 hatten und Sie mit einem 128-Zeichen-Puffer aufgerufen ReadValueChunk haben, würde der Methodenaufruf 127 Zeichen anstelle der angeforderten 128 Zeichen zurückgeben. Das Ersatzpaar wird dann beim nächsten ReadValueChunk Aufruf zurückgegeben. In diesem Fall hat die angeforderten 128 Zeichen nicht zurückgegeben, ReadValueChunk da dies zu einem unvollständigen Ersatzpaar am Ende des Puffers geführt hätte.

Die asynchrone Version dieser Methode finden Sie unter ReadValueChunkAsync.

Gilt für: