Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XmlMtomReader是否在内部缓存输入流中的二进制数据?_C#_Xml_Wcf_Xmlreader_Mtom - Fatal编程技术网

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

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

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

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

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

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

  • 然后是二进制第2部分
下面是发生的情况:

  • 要开始读取XML(元素“a”),它必须在内部存储二进制第1部分
  • 当您读取元素“b”的内容时,它来自内部存储器
  • 当您开始读取元素“c”时,它在内部存储XML的其余部分(元素“d”),并将流推进到二进制第2部分。此时读取元素“c”的内容时,它直接来自流,而不是来自存储
  • 当您最后读取元素“d”时,XML来自内部存储器
我记得(已经有一段时间了……),XmlMtomReader根据MIME部分在输入流中出现的顺序,完成所需的最小内部存储量。(MTOM标准允许它们以任何顺序出现)

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

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

  • 然后是二进制第2部分
下面是发生的情况:

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

我认为更新问题标题以反映您真正感兴趣的类型是值得的。我认为更新问题标题以反映您真正感兴趣的类型是值得的。谢谢您精彩的解释!!谢谢你精彩的解释!!