XmlReader.ReadValueChunk(Char[], Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest große Textströme, die in ein XML-Dokument eingebettet sind.
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 innerhalb des Puffers, in dem die XmlReader Ergebnisse kopiert werden können.
- count
- Int32
Die maximale Anzahl von Zeichen, die in den Puffer kopiert werden sollen. Die tatsächliche Anzahl der kopierten Zeichen wird von dieser Methode zurückgegeben.
Gibt zurück
Die Anzahl der Zeichen, die in den Puffer gelesen werden. Der Wert Null wird zurückgegeben, wenn kein Textinhalt mehr vorhanden ist.
Ausnahmen
Der aktuelle Knoten hat keinen Wert (HasValue ist false).
- oder -
Eine XmlReader Methode wurde aufgerufen, bevor ein vorheriger asynchroner Vorgang abgeschlossen wurde. In diesem Fall InvalidOperationException wird die Meldung "Ein asynchroner Vorgang wird bereits ausgeführt" ausgelöst.
Der wert buffer ist null.
Der Index im Puffer oder index +count ist größer als die zugeordnete Puffergröße.
Diese Methode wird von der XmlReader Implementierung nicht unterstützt.
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, d. h. eine kleine Anzahl von Zeichen gleichzeitig, anstatt eine einzelne Zeichenfolge für den gesamten Wert zu zuordnen. Diese Methode kann für jeden Knoten aufgerufen werden, der einen Wert hat (HasValue ist true), aber das tatsächliche Streaming des Knotenwerts tritt nur auf, 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 verschenkt nicht die XmlReader.
Diese Methode liest die angegebene Anzahl von Zeichen (count) des Knotenwerts in einen Zeichenpuffer (buffer) bei einem angegebenen Offset (index) und gibt die Anzahl der Zeichen zurück, die in den Puffer geschrieben wurden. Sie gibt den 0 Wert zurück, wenn er das Ende des Werts erreicht hat. Es kann nicht neu gestartet werden, um den Wert erneut zu lesen.
Zwischen Aufrufen der ReadValueChunkXmlReader Eigenschaften ändert sich mit Ausnahme der Value Eigenschaft keine Änderung. Wenn auf die Value Eigenschaft zugegriffen wird, kann sie je nach Implementierung entweder einen Teilwert (mit Zeichen zurückgeben, die ReadValueChunknoch nicht zurückgegeben werden) oder einen vollständigen Wert zurückgeben. XmlReader Alle Implementierungen im System.Xml Namespace geben einen Teilwert für die Value Eigenschaftsimplementierung zurück.
Jede Read-Methode kann zwischen Aufrufen ReadValueChunkaufgerufen werden. Wenn dies geschieht, werden die XmlReader Verschiebungen zum nächsten XmlNodeType im Datenstrom und alle noch nicht zurückgegebenen Zeichen übersprungen.
Es kann ein Fall geben, wenn ReadValueChunk weniger als die angeforderte Anzahl von Zeichen zurückgegeben wird. Wenn Sie z. B. einen 200 Zeichen langen Wert mit einem Ersatzpaar an positionen 127 und 128 hatten und sie mit einem Puffer mit 128 Zeichen aufgerufen ReadValueChunk haben, würde der Methodenaufruf 127 Zeichen anstelle der angeforderten 128 Zeichen zurückgeben. Das Ersatzpaar wird dann im nächsten ReadValueChunk Anruf zurückgegeben. In diesem Fall wurde 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.