XmlReader.ReadValueChunk(Char[], Int32, Int32) Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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.
- 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: .