Comparteix a través de


XmlReader.ReadValueChunk(Char[], Int32, Int32) Método

Definición

Lee grandes secuencias de texto incrustadas en un documento XML.

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

Parámetros

buffer
Char[]

Matriz de caracteres que sirve como búfer en el que se escribe el contenido de texto. Este valor no puede ser null.

index
Int32

Desplazamiento en el búfer en el que XmlReader puede empezar a copiar los resultados.

count
Int32

Número máximo de caracteres que se van a copiar en el búfer. El número real de caracteres copiados se devuelve desde este método.

Devoluciones

Número de caracteres leídos en el búfer. Si no hay más contenido de texto, se devuelve el valor cero.

Excepciones

El nodo actual no tiene ningún valor (HasValue es false).

o bien

Se llamó un método XmlReader antes de que se termine una operación asincrónica anterior. En este caso, se genera InvalidOperationException con el mensaje “Ya hay una operación asincrónica en curso”.

El valor buffer es null.

El índice del búfer (index) o la suma del índice y el recuento (index + count) es mayor que el tamaño de búfer asignado.

La implementación de XmlReader no admite este método.

El formato de los datos XML no es correcto.

Comentarios

Este método permite leer secuencias de texto muy grandes incrustadas en un documento XML de forma de streaming, es decir, un pequeño número de caracteres a la vez en lugar de asignar una sola cadena para todo el valor. Se puede llamar a este método en cualquier nodo que tenga un valor (HasValue es true), pero el streaming real del valor del nodo solo se produce cuando se llama a en un texto, espacio en blanco y nodos de espacios en blanco significativos. Otros valores de tipo de nodo se almacenan en caché, incluidos los atributos y los nodos CDATA.

Este método devuelve solo el contenido de la Value propiedad y no mueve .XmlReader

Este método lee el número especificado de caracteres (count) del valor del nodo en un búfer de caracteres () en un desplazamiento especificado (bufferindex) y devuelve el número de caracteres escritos en el búfer. Devuelve cuando 0 ha llegado al final del valor. No se puede reiniciar para volver a leer el valor.

Entre las llamadas a ReadValueChunk las XmlReader propiedades no cambian, excepto la Value propiedad . Cuando se accede a la Value propiedad, puede devolver un valor parcial (con caracteres que aún no ha devuelto ReadValueChunk) o un valor completo en función de la implementación. Todas las XmlReader implementaciones del System.Xml espacio de nombres devuelven un valor parcial para la implementación de la Value propiedad.

Se puede llamar a cualquier método Read entre llamadas a ReadValueChunk. Si esto ocurre, se omiten los XmlReader movimientos al siguiente XmlNodeType de la secuencia y se omiten los caracteres que aún no se devuelven.

Puede haber un caso cuando ReadValueChunk devuelve menos que el número de caracteres solicitado. Por ejemplo, si tenía un valor largo de 200 caracteres con un par suplente en las posiciones 127 y 128 y ReadValueChunk llamó con un búfer de 128 caracteres, la llamada al método devolvería 127 caracteres en lugar del 128 solicitado. A continuación, el par suplente se devolvería en la siguiente ReadValueChunk llamada. En este caso, ReadValueChunk no devolvió los 128 caracteres solicitados porque, al hacerlo, se habría producido un par suplente incompleto al final del búfer.

Para obtener la versión asincrónica de este método, vea ReadValueChunkAsync.

Se aplica a