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
.
- count
- Int32
Максимальное количество копируемых в буфер символов. Этот метод возвращает фактическое количество скопированных символов.
Возвращаемое значение
Количество символов, считанных в буфер. По окончании текстового содержимого возвращается нуль.
Исключения
У текущего узла нет значения (значение свойства HasValue — false
).
-или-
Метод XmlReader вызван перед завершением предыдущей асинхронной операции. В этом случае возникает исключение InvalidOperationException с сообщением "Асинхронная операция уже выполняется".
Значение buffer
равно null
.
Значение индекса в буфере или сумма значений индекса и счетчика больше, чем выделенный размер буфера.
Реализация XmlReader не поддерживает данный метод.
Данные XML имеют неправильный формат.
Комментарии
Этот метод позволяет считывать очень большие потоки текста, внедренного в XML-документ, в потоковом режиме, то есть небольшое количество символов за раз вместо выделения одной строки для всего значения. Этот метод можно вызвать на любом узле, который имеет значение (HasValue имеет значение true
), однако фактическая потоковая передача значения узла происходит только при вызове текста, пробелов и значительных узлов пробелов. Другие значения типов узлов кэшируются, включая атрибуты и узлы CDATA.
Этот метод возвращает только содержимое Value свойства и не перемещает .XmlReader
Этот метод считывает указанное количество символов (count
) значения узла в буфер символов (buffer
) с указанным смещением (index
) и возвращает количество символов, записанных в буфер. Он возвращает значение 0
, когда оно достигло конца значения. Его нельзя перезапустить для повторного чтения значения.
Между вызовами ReadValueChunk XmlReader свойств не изменяются, за исключением Value свойства. При доступе к свойству Value может быть возвращено частичное значение (с символами, которые еще не возвращены ReadValueChunk) или полное значение в зависимости от реализации. XmlReader Все реализации в System.Xml пространстве имен возвращают частичное значение для Value реализации свойства.
Любой метод Чтения можно вызвать между вызовами ReadValueChunk. В этом случае переходы к следующему XmlNodeType в потоке и все символы, которые еще не возвращаются, XmlReader пропускаются.
Может возникнуть случай, когда ReadValueChunk возвращается меньше запрошенного количества символов. Например, если у вас было 200-символьное значение с суррогатной парой на позициях 127 и 128, и вы вызвали ReadValueChunk с 128-символьным буфером, вызов метода вернет 127 символов вместо запрошенного 128. Суррогатная пара будет возвращена в следующем ReadValueChunk вызове. В этом случае не возвращал запрошенные 128 символов, ReadValueChunk так как это привело бы к неполной суррогатной паре в конце буфера.
Асинхронная версия этого метода см. в разделе ReadValueChunkAsync.