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

Definição

Lê grandes fluxos de texto embutidos num 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[]

O conjunto de caracteres que serve de buffer para onde o conteúdo do texto é escrito. Este valor não pode ser null.

index
Int32

O deslocamento dentro do buffer onde podem XmlReader começar a copiar os resultados.

count
Int32

O número máximo de caracteres a copiar para o buffer. O número real de caracteres copiados é devolvido deste método.

Devoluções

O número de caracteres lidos no buffer. O valor zero é devolvido 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 era chamado antes de uma operação assíncrona anterior terminar. Neste caso, InvalidOperationException é lançado com a mensagem "Uma operação assíncrona já está em curso."

O buffer valor é null.

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

A XmlReader implementação não suporta este método.

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

Observações

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

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

Este método lê o número especificado de caracteres (count) do valor do nó num buffer de caracteres (buffer) a um deslocamento especificado (index) e devolve o número de caracteres escritos no buffer. Devolve o 0 quando atingiu o fim do valor. Não pode ser reiniciado para ler o valor novamente.

Entre chamadas às ReadValueChunkXmlReader propriedades não mudam exceto para a Value propriedade. Quando a Value propriedade é acedida, pode devolver 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 Value implementação da propriedade.

Qualquer método Read pode ser chamado entre chamadas para ReadValueChunk. Se isto acontecer, os XmlReader movimentos para o próximo XmlNodeType no stream e quaisquer personagens ainda não regressados são saltados.

Pode haver um caso em que ReadValueChunk retorna menos do que o número solicitado de caracteres. Por exemplo, se tivesse um valor de 200 caracteres com um par substituto nas posições 127 e 128 e chamasse ReadValueChunk com um buffer de 128 caracteres, a chamada ao método devolveria 127 caracteres em vez dos 128 solicitados. O par de substituição seria então devolvido na chamada seguinte ReadValueChunk . Neste caso, ReadValueChunk não devolveu os 128 caracteres solicitados porque isso teria resultado num par substituto incompleto no final do buffer.

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

Aplica-se a