XmlReader.ReadValueChunk(Char[], Int32, Int32) Metódus

Definíció

Egy XML-dokumentumba beágyazott nagy szövegfolyamokat olvas be.

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

Paraméterek

buffer
Char[]

A szöveg tartalmát tartalmazó pufferként szolgáló karakterek tömbje. Ez az érték nem lehet null.

index
Int32

Az eltolás a pufferen belül, ahol a XmlReader fájl elkezdheti az eredmények másolását.

count
Int32

A pufferbe másolandó karakterek maximális száma. A program a másolt karakterek tényleges számát adja vissza ebből a metódusból.

Válaszok

A pufferbe beolvasott karakterek száma. A nulla érték akkor lesz visszaadva, ha nincs több szöveges tartalom.

Kivételek

Az aktuális csomópont nem rendelkezik értékkel (HasValue is false).

-vagy-

Egy XmlReader metódust hívtak meg, mielőtt egy korábbi aszinkron művelet befejeződött. Ebben az esetben InvalidOperationException a "Aszinkron művelet már folyamatban van" üzenet jelenik meg.

Az buffer érték a következő null: .

A pufferbe vagy index + darabszámba tartozó index nagyobb, mint a lefoglalt pufferméret.

A XmlReader megvalósítás nem támogatja ezt a módszert.

Az XML-adatok nem megfelelően formázottak.

Megjegyzések

Ez a módszer lehetővé teszi az XML-dokumentumokba beágyazott nagyon nagy szövegfolyamok olvasását streamelési módon, azaz egyszerre kis számú karaktert ahelyett, hogy egyetlen sztringet osztanak ki a teljes értékhez. Ez a módszer bármely olyan csomóponton meghívható, amely rendelkezik értékkel (HasValue is true), azonban a csomópont értékének tényleges streamelése csak akkor történik meg, ha egy szövegre, üres területre és jelentős szabad terület csomópontokra van meghívva. A rendszer más csomóponttípus-értékeket is gyorsítótáraz, beleértve az attribútumokat és a CDATA-csomópontokat.

Ez a metódus csak a tulajdonság tartalmát Value adja vissza, és nem helyezi át a XmlReader.

Ez a metódus beolvassa a csomópontérték megadott számú karakterét (count) egy karakterpufferbe () egy megadott eltoláskor (bufferindex) és visszaadja a pufferbe írt karakterek számát. Azt adja 0 vissza, amikor elérte az érték végét. Nem indítható újra az érték újraolvasásához.

A tulajdonságok közötti ReadValueChunk hívások nem változnak, XmlReader kivéve a tulajdonságot Value . Value A tulajdonság elérésekor vagy részleges értéket ad vissza (a karaktereket még nem adta visszaReadValueChunk) vagy egy teljes értéket a megvalósítástól függően. A XmlReader névtérben lévő System.Xml összes implementáció részleges értéket ad vissza a tulajdonság implementációjának Value .

Bármely olvasási metódus meghívható a következő ReadValueChunkhívás között: . Ha ez történik, a rendszer kihagyja a XmlReader következőre XmlNodeType való áthelyezést a streamben, és a még vissza nem adott karakterek kihagyva lesznek.

Előfordulhat, hogy ReadValueChunk a megadott számú karakternél kisebb értéket ad vissza. Ha például egy 200 karakter hosszú érték van egy helyettesítő párral a 127- és 128-as pozícióban, és 128 karakteres pufferrel hívott ReadValueChunk , a metódushívás a kért 128 helyett 127 karaktert ad vissza. A helyettes pár ezután a következő ReadValueChunk hívásban lesz visszaadva. Ebben az esetben nem adta vissza a kért 128 karaktert, ReadValueChunk mert így a puffer végén hiányos helyettesítő pár lett volna.

A metódus aszinkron verziójáról lásd ReadValueChunkAsync: .

A következőre érvényes: