XmlMtomReader 是否在内部缓存输入流中的二进制数据?

发布于 2024-08-06 12:50:42 字数 95 浏览 2 评论 0原文

实际上我想知道 XmlMtomReader 是否直接从输入流读取 mime 二进制部分?或者在我调用 ReadContentAsBase64() 方法之前它是否在内部存储它们?

Actually i'd like to know if XmlMtomReader reads mime binary parts from the input stream directly? Or does it store them internally before i call ReadContentAsBase64() method?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

歌枕肩 2024-08-13 12:50:42

我记得(已经有一段时间了......),XmlMtomReader 执行所需的最小内部存储量,具体取决于 MIME 部分在输入流中出现的顺序。 (MTOM 标准允许它们以任何顺序出现)。

因此,如果您的输入流是,例如:

  • 二进制部分 1
  • 然后是主要 XML 部分,例如

< a/>< b >...二进制部分 1...< /b>< c >...二进制部分 2...< /c>< /d>

  • 然后二进制部分 2

会发生什么:

  • 要开始读取 XML(元素“a”),它必须在内部存储二进制部分 1
  • 当您读取元素“b”的内容时,它来自内部存储
  • 当您开始读取元素“c”时”,它在内部存储 XML 的其余部分(元素“d”),并将流推进到二进制部分 2。当您此时读取元素“c”的内容时,它直接来自流,而不是来自存储。
  • 当您最后读取元素“d”时,XML 来自内部存储

As I recall (and it's been a while...), XmlMtomReader does the minimal amount of internal storage required, depending on the order in which the MIME parts appear in the input stream. (The MTOM standard allows them to appear in any order).

So if your input stream is, for example:

  • Binary part 1
  • Then the main XML part, e.g.

< a/ >< b >...binary part 1...< /b >< c >...binary part 2...< /c >< /d >

  • Then Binary part 2

Here's what happens:

  • To start reading the XML (element "a"), it must store Binary Part 1 internally
  • When you read contents of element "b", it comes from the internal storage
  • When you start reading element "c", it stores the rest of the XML internally (element "d"), and advances the stream to Binary Part 2. When you read the contents of element "c" at this point, it comes directly from the stream, not from storage.
  • When you lastly read element "d", the XML comes from internal storage
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文