C# XmlMtomReader是否在内部缓存输入流中的二进制数据?
实际上,我想知道XmlMtomReader是否直接从输入流读取mime二进制部分?还是在调用ReadContentAsBase64()方法之前将它们存储在内部?我记得(已经有一段时间了……),XmlMtomReader根据MIME部分在输入流中的显示顺序,执行所需的最小内部存储量。(MTOM标准允许它们以任何顺序出现) 因此,如果您的输入流是,例如:C# XmlMtomReader是否在内部缓存输入流中的二进制数据?,c#,xml,wcf,xmlreader,mtom,C#,Xml,Wcf,Xmlreader,Mtom,实际上,我想知道XmlMtomReader是否直接从输入流读取mime二进制部分?还是在调用ReadContentAsBase64()方法之前将它们存储在内部?我记得(已经有一段时间了……),XmlMtomReader根据MIME部分在输入流中的显示顺序,执行所需的最小内部存储量。(MTOM标准允许它们以任何顺序出现) 因此,如果您的输入流是,例如: 二进制第1部分 然后是XML的主要部分,例如 …二进制第1部分……二进制第2部分… 然后是二进制第2部分 下面是发生的情况: 要开始读取
- 二进制第1部分
- 然后是XML的主要部分,例如
- 然后是二进制第2部分
- 要开始读取XML(元素“a”),它必须在内部存储二进制第1部分
- 当您读取元素“b”的内容时,它来自内部存储器
- 当您开始读取元素“c”时,它在内部存储XML的其余部分(元素“d”),并将流推进到二进制第2部分。此时读取元素“c”的内容时,它直接来自流,而不是来自存储
- 当您最后读取元素“d”时,XML来自内部存储器
- 二进制第1部分
- 然后是XML的主要部分,例如
- 然后是二进制第2部分
- 要开始读取XML(元素“a”),它必须在内部存储二进制第1部分
- 当您读取元素“b”的内容时,它来自内部存储器
- 当您开始读取元素“c”时,它在内部存储XML的其余部分(元素“d”),并将流推进到二进制第2部分。此时读取元素“c”的内容时,它直接来自流,而不是来自存储
- 当您最后读取元素“d”时,XML来自内部存储器