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 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.