XmlReader.ReadValueChunk(Char[], Int32, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser stora strömmar av text som är inbäddade i ett XML-dokument.
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
Parametrar
- buffer
- Char[]
Matrisen med tecken som fungerar som bufferten som textinnehållet skrivs till. Det här värdet får inte vara null.
- count
- Int32
Det maximala antalet tecken som ska kopieras till bufferten. Det faktiska antalet tecken som kopieras returneras från den här metoden.
Returer
Antalet tecken som läse in i bufferten. Värdet noll returneras när det inte finns något mer textinnehåll.
Undantag
Den aktuella noden har inget värde (HasValue är false).
-eller-
En XmlReader metod anropades innan en tidigare asynkron åtgärd slutfördes. I det här fallet InvalidOperationException genereras meddelandet "En asynkron åtgärd pågår redan".
Värdet buffer är null.
Indexet i bufferten eller index + antal är större än den allokerade buffertstorleken.
Implementeringen XmlReader stöder inte den här metoden.
XML-data är inte välformulerad.
Kommentarer
Med den här metoden kan du läsa mycket stora strömmar av text som bäddats in i ett XML-dokument på ett strömmande sätt, dvs. ett litet antal tecken i taget i stället för att allokera en enda sträng för hela värdet. Den här metoden kan anropas på alla noder som har ett värde (HasValue är true), men faktisk strömning av nodvärdet sker bara när den anropas på en text, tomt utrymme och betydande blankstegsnoder. Andra nodtypvärden cachelagras, inklusive attribut och CDATA-noder.
Den här metoden returnerar endast innehållet i Value egenskapen och flyttar XmlReaderinte .
Den här metoden läser det angivna antalet tecken (count) av nodvärdet till en teckenbuffert (buffer) vid en angiven förskjutning (index) och returnerar antalet tecken som skrivits till bufferten. Den returnerar 0 när det har nått slutet av värdet. Det går inte att starta om för att läsa igenom värdet igen.
Mellan anrop till ReadValueChunkXmlReader egenskaperna ändras ingen förutom egenskapen Value . När egenskapen Value används kan den antingen returnera ett partiellt värde (med tecken som ännu inte returnerats av ReadValueChunk) eller ett fullständigt värde beroende på implementeringen. XmlReader Alla implementeringar i System.Xml namnområdet returnerar ett partiellt värde för egenskapsimplementeringenValue.
Alla Läs-metoder kan anropas mellan anrop till ReadValueChunk. Om detta inträffar hoppas flyttningarna XmlReader till nästa XmlNodeType i strömmen och alla tecken som ännu inte returneras över.
Det kan finnas ett fall då ReadValueChunk returnerar mindre än det begärda antalet tecken. Om du till exempel hade ett 200 tecken långt värde med ett surrogatpar på positionerna 127 och 128 och du anropade ReadValueChunk med en buffert på 128 tecken skulle metodanropet returnera 127 tecken i stället för den begärda 128. Surrogatparet returneras sedan i nästa ReadValueChunk samtal. I det här fallet ReadValueChunk returnerade inte de begärda 128 tecknen eftersom det skulle ha resulterat i ett ofullständigt surrogatpar i slutet av bufferten.
Den asynkrona versionen av den här metoden finns i ReadValueChunkAsync.