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

Definizione

Legge flussi di testo di grandi dimensioni incorporati in un documento XML.Reads large streams of text embedded in an XML document.

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

Parametri

buffer
Char[]

Matrice di caratteri che funge da buffer in cui viene scritto il contenuto di testo.The array of characters that serves as the buffer to which the text contents are written. Questo valore non può essere null.This value cannot be null.

index
Int32 Int32 Int32 Int32

L'offset all'interno del buffer in cui il XmlReader può iniziare a copiare i risultati.The offset within the buffer where the XmlReader can start to copy the results.

count
Int32 Int32 Int32 Int32

Numero massimo di caratteri da copiare nel buffer.The maximum number of characters to copy into the buffer. Il numero effettivo di caratteri copiati viene restituito da questo metodo.The actual number of characters copied is returned from this method.

Restituisce

Numero di caratteri letti nel buffer.The number of characters read into the buffer. Quando non è più disponibile contenuto di testo, viene restituito il valore zero.The value zero is returned when there is no more text content.

Eccezioni

Il nodo corrente non ha un valore (HasValue è false).The current node does not have a value (HasValue is false).

In alternativa-or- È stato chiamato un metodo della classe XmlReader prima del completamento di un'operazione asincrona precedente.An XmlReader method was called before a previous asynchronous operation finished. In questo caso, viene generata l'eccezione InvalidOperationException con il messaggio "È già in corso un'operazione asincrona".In this case, InvalidOperationException is thrown with the message "An asynchronous operation is already in progress."

Il valore di buffer è null.The buffer value is null.

L'indice nel buffer oppure la somma di indice e numero è superiore alla dimensione del buffer allocato.The index into the buffer, or index + count is larger than the allocated buffer size.

L'implementazione di XmlReader non supporta questo metodo.The XmlReader implementation does not support this method.

Il formato dei dati XML non è corretto.The XML data is not well-formed.

Commenti

Questo metodo consente la lettura di dimensioni molto grandi flussi di testo incorporato in un documento XML in modalità flusso, vale a dire, un numero ridotto di caratteri in un momento invece di allocare una sola stringa per l'intero valore.This method enables reading of very large streams of text embedded in an XML document in a streaming fashion, that is, a small number of characters at a time instead of allocating a single string for the whole value. Questo metodo può essere chiamato su qualsiasi nodo che ha un valore (HasValue è true), ma lo streaming effettivo del valore del nodo si verifica solo quando viene chiamato su un testo, gli spazi vuoti e i nodi spazi vuoti significativi.This method can be called on any node that has a value (HasValue is true), however actual streaming of the node value only occurs when called on a text, white space and significant white space nodes. Altri valori di tipo di nodo vengono memorizzati nella cache, inclusi gli attributi e i nodi CDATA.Other node type values are cached, including attributes and CDATA nodes.

Questo metodo restituisce solo il contenuto del Value proprietà e non si sposta il XmlReader.This method returns only the content of the Value property and does not move the XmlReader.

Questo metodo legge il numero specificato di caratteri (count) del valore del nodo in un buffer di caratteri (buffer) a un offset specificato (index) e restituisce il numero di caratteri scritti nel buffer.This method reads the specified number of characters (count) of the node value into a character buffer (buffer) at a specified offset (index) and returns the number of characters written to the buffer. Restituisce il 0 quando ha raggiunto la fine del valore.It returns the 0 when it has reached the end of the value. Non può essere riavviato per leggere nuovamente tramite il valore.It cannot be restarted to read through the value again.

Tra le chiamate a ReadValueChunk il XmlReader proprietà non eseguire alcuna modifica, ad eccezione del Value proprietà.In between calls to ReadValueChunk the XmlReader properties do no change except for the Value property. Quando la Value si accede alla proprietà possibile che venga restituito un valore parziale (con i caratteri non ancora restituiti da ReadValueChunk) o un valore a seconda dell'implementazione completo.When the Value property is accessed it may either return a partial value (with characters not yet returned by ReadValueChunk) or a full value depending on the implementation. Tutti il XmlReader implementazioni nel System.Xml dello spazio dei nomi restituiscono un valore parziale per il Value implementazione della proprietà.All the XmlReader implementations in the System.Xml namespace return a partial value for the Value property implementation.

Qualsiasi operazione di lettura è possibile chiamare tra le chiamate a metodo ReadValueChunk.Any Read method can be called in between calls to ReadValueChunk. In questo caso, il XmlReader passa alla successiva XmlNodeType del flusso e gli eventuali caratteri non ancora restituiti vengono ignorati.If this occurs, the XmlReader moves to the next XmlNodeType in the stream and any characters not yet returned are skipped.

Potrebbe esserci un caso quando ReadValueChunk restituisce inferiore al numero richiesto di caratteri.There may be a case when ReadValueChunk returns less than the requested number of characters. Ad esempio, se si dispone di un valore 200 caratteri con una coppia di surrogati in corrispondenza delle posizioni 128 e 127 ed è stato chiamato ReadValueChunk con un buffer di 128 caratteri, la chiamata al metodo restituirebbe 127 caratteri anziché i 128 richiesti.For example, if you had a 200-character long value with a surrogate pair at positions 127 and 128 and you called ReadValueChunk with a 128-character buffer, the method call would return 127 characters instead of the requested 128. Viene restituita la coppia di surrogati entro i prossimi ReadValueChunk chiamare.The surrogate pair would then be returned in the next ReadValueChunk call. In questo caso, ReadValueChunk non ha restituito i 128 caratteri richiesti in quanto si sarebbe ottenuto come risultato una coppia di surrogati non completate alla fine del buffer.In this case, ReadValueChunk did not return the requested 128 characters because doing so would have resulted in an incomplete surrogate pair at the end of the buffer.

Per la versione asincrona di questo metodo, vedere ReadValueChunkAsync.For the asynchronous version of this method, see ReadValueChunkAsync.

Si applica a