实际上我想知道 XmlMtomReader 是否直接从输入流中读取 mime 二进制部分?还是在我调用 ReadContentAsBase64() 方法之前将它们存储在内部?
问问题
543 次
1 回答
1
我记得(已经有一段时间了......),XmlMtomReader 执行所需的最小内部存储量,具体取决于 MIME 部分在输入流中出现的顺序。(MTOM 标准允许它们以任何顺序出现)。
因此,如果您的输入流是,例如:
- 二进制部分 1
- 然后是主要的 XML 部分,例如
< a/ >< b >...二进制部分 1...</b >< c >...二进制部分 2...</c ></d >
- 然后是二进制第 2 部分
这是发生的事情:
- 要开始读取 XML(元素“a”),它必须在内部存储 Binary Part 1
- 当您读取元素“b”的内容时,它来自内部存储
- 当您开始读取元素“c”时,它会在内部存储 XML 的其余部分(元素“d”),并将流推进到 Binary Part 2。当您此时读取元素“c”的内容时,它会直接出现来自流,而不是来自存储。
- 当您最后读取元素“d”时,XML 来自内部存储
于 2009-10-01T18:01:41.953 回答