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

Definição

Lê grandes fluxos de texto inseridos em um 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[]

A matriz de caracteres que serve como o buffer no qual os conteúdos de texto são gravados. Este valor pode não ser null.

index
Int32

O deslocamento dentro do buffer em que o XmlReader pode começar a copiar os resultados.

count
Int32

O número máximo de caracteres a ser copiado para o buffer. O número real de caracteres copiado é retornado deste método.

Retornos

Int32

O número de caracteres lidos no buffer. O valor zero é retornado quando não há mais nenhum conteúdo de texto.

Exceções

O nó atual não tem um valor (HasValue é false).

- ou -

Um método XmlReader foi chamado antes do término de uma operação assíncrona anterior. Nesse caso, InvalidOperationException será gerado com a mensagem “Uma operação assíncrona já está em andamento”.

O valor buffer é null.

O índice do buffer ou a contagem de índices + é maior que o tamanho do buffer alocado.

A implementação XmlReader não dá suporte a esse método.

Os dados XML não estão bem formados.

Comentários

Esse método permite a leitura de fluxos muito grandes de texto inseridos em um documento XML de forma de streaming, ou seja, um pequeno número de caracteres por vez em vez de alocar uma única cadeia de caracteres para todo o valor. Esse método pode ser chamado em qualquer nó que tenha um valor (HasValue é true), no entanto, o streaming real do valor do nó só ocorre quando chamado em um texto, espaço em branco e nós de espaço em branco significativos. Outros valores de tipo de nó são armazenados em cache, incluindo atributos e nós CDATA.

Esse método retorna apenas o conteúdo da Value propriedade e não move o XmlReader.

Esse método lê o número especificado de caracteres (count) do valor do nó em um buffer de caracteres (buffer) em um deslocamento especificado (index) e retorna o número de caracteres gravados no buffer. Ele retorna o 0 momento em que chegou ao final do valor. Ele não pode ser reiniciado para ler o valor novamente.

Entre as chamadas para ReadValueChunk as XmlReader propriedades não há alteração, exceto para a Value propriedade. Quando a Value propriedade é acessada, ela pode retornar um valor parcial (com caracteres ainda não retornados por ReadValueChunk) ou um valor completo, dependendo da implementação. Todas as XmlReader implementações no System.Xml namespace retornam um valor parcial para a implementação da Value propriedade.

Qualquer método de leitura pode ser chamado entre chamadas para ReadValueChunk. Se isso ocorrer, os XmlReader movimentos para o próximo XmlNodeType no fluxo e quaisquer caracteres ainda não retornados serão ignorados.

Pode haver um caso em ReadValueChunk que retorna menos do que o número solicitado de caracteres. Por exemplo, se você tivesse um valor longo de 200 caracteres com um par substituto nas posições 127 e 128 e ligasse ReadValueChunk com um buffer de 128 caracteres, a chamada de método retornaria 127 caracteres em vez dos 128 solicitados. O par substituto seria então retornado na próxima ReadValueChunk chamada. Nesse caso, ReadValueChunk não retornou os 128 caracteres solicitados porque isso teria resultado em um par alternativo incompleto no final do buffer.

Para obter a versão assíncrona deste método, consulte ReadValueChunkAsync.

Aplica-se a