Partilhar via


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 o conteúdo do texto é gravado. Esse valor não pode ser null.

index
Int32

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

count
Int32

O número máximo de caracteres a serem copiados para o buffer. O número real de caracteres copiados é retornado desse método.

Retornos

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

Exceções

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

- ou -

Um XmlReader método foi chamado antes de uma operação assíncrona anterior ser concluída. Nesse caso, InvalidOperationException é lançada com a mensagem "Uma operação assíncrona já está em andamento".

O buffer valor é null.

O índice no buffer ou índice + contagem é maior que o tamanho do buffer alocado.

A XmlReader implementação 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 o valor inteiro. 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 caractere (buffer) em um deslocamento especificado (index) e retorna o número de caracteres gravados no buffer. Retorna o 0 momento em que atingiu o 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á nenhuma alteração, exceto 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, as XmlReader movimentações para a próxima XmlNodeType no fluxo e quaisquer caracteres ainda não retornados serão ignoradas.

Pode haver um caso em ReadValueChunk que retorna menos do que o número de caracteres solicitado. Por exemplo, se você tivesse um valor longo de 200 caracteres com um par alternativo 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 resultaria em um par alternativo incompleto no final do buffer.

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

Aplica-se a