Поделиться через


XmlReader.ReadValueChunk(Char[], Int32, Int32) Метод

Определение

Считывает большие потоки текста, внедренного в 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

Параметры

buffer
Char[]

Массив символов, который служит буфером, в который записывается текстовое содержимое. Это значение не может быть равно null.

index
Int32

Смещение в буфере, где XmlReader можно начать копирование результатов.

count
Int32

Максимальное количество символов для копирования в буфер. Фактическое количество скопированных символов возвращается из этого метода.

Возвращаемое значение

Количество символов, считываемых в буфер. Значение нуля возвращается, если нет больше текстового содержимого.

Исключения

Текущий узел не имеет значения (HasValue is false).

–или–

Метод XmlReader был вызван до завершения предыдущей асинхронной операции. В этом случае InvalidOperationException создается сообщение "Асинхронная операция уже выполняется".

Значение buffer равно null.

Индекс в буфер или индекс + число больше выделенного размера буфера.

Реализация XmlReader не поддерживает этот метод.

XML-данные не являются хорошо сформированными.

Комментарии

Этот метод позволяет считывать очень большие потоки текста, внедренного в XML-документ в потоковом режиме, то есть небольшое количество символов за раз вместо выделения одной строки для всего значения. Этот метод можно вызвать на любом узле с значением (имеет значениеtrue),HasValue однако фактическая потоковая передача значения узла возникает только при вызове текста, пробелов и значительных узлов пробелов. Другие значения типов узлов кэшируются, включая атрибуты и узлы CDATA.

Этот метод возвращает только содержимое Value свойства и не перемещает его XmlReader.

Этот метод считывает указанное число символов (count) значения узла в буфер символов () с указанным смещением (indexbuffer) и возвращает количество символов, записанных в буфер. Он возвращает значение 0 , когда оно достигло конца значения. Его нельзя перезапустить для повторного чтения значения.

Между вызовами ReadValueChunkXmlReader свойств не изменяются, кроме Value свойства. Value При доступе к свойству может быть возвращено частичное значение (с символами, которые еще не возвращеныReadValueChunk) или полное значение в зависимости от реализации. XmlReader Все реализации в System.Xml пространстве имен возвращают частичное значение для Value реализации свойства.

Любой метод чтения можно вызывать между вызовами ReadValueChunk. Если это происходит, переход к следующему XmlNodeType в потоке и все символы, которые еще не возвращаются, XmlReader пропускаются.

Может возникнуть случай, когда ReadValueChunk возвращается меньше запрошенного количества символов. Например, если у вас было 200-символьное значение с суррогатной парой на позициях 127 и 128, и вы вызвали ReadValueChunk с 128-символьным буфером, вызов метода вернет 127 символов вместо запрошенного 128. Затем суррогатная пара будет возвращена в следующем ReadValueChunk вызове. В этом случае не возвращал запрошенные 128 символов, ReadValueChunk так как это привело бы к неполной суррогатной паре в конце буфера.

Сведения об асинхронной версии этого метода см. в разделе ReadValueChunkAsync.

Применяется к