XmlReader.ReadValueChunk(Char[], Int32, Int32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
读取嵌入在 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) 返回,也可以返回完整值,具体取决于实现。 命名空间中的所有System.Xml实现都XmlReader返回属性实现的部分Value值。
可以在调用 ReadValueChunk之间调用任何 Read 方法。 如果发生这种情况,则会 XmlReader 跳过流中的下一个 XmlNodeType 移动,并且未返回的任何字符。
返回的字符数小于所请求的字符数时 ReadValueChunk ,可能会出现这种情况。 例如,如果具有 200 个字符的长值,其代理项对位于位置 127 和 128,并且使用 128 个字符缓冲区进行调用 ReadValueChunk ,则方法调用将返回 127 个字符,而不是请求的 128 个字符。 然后,代理项对将在下一 ReadValueChunk 次调用中返回。 在这种情况下,未返回请求的 128 个字符, ReadValueChunk 因为这样做会导致缓冲区末尾的代理项对不完整。
有关此方法的异步版本,请参阅 ReadValueChunkAsync。