¿Tiene datos binarios de caché XmlMtomReader del flujo de entrada internamente?
Pregunta
En realidad me gustaría saber si XmlMtomReader lee partes binarias mime del flujo de entrada directamente? ¿O se almacena internamente antes de que llame ReadContentAsBase64 método ()?
Solución
Por lo que recuerdo (y ha sido desde hace tiempo ...), XmlMtomReader hace la cantidad mínima requerida de almacenamiento interno, dependiendo del orden en el que las partes MIME aparecen en el flujo de entrada. (El estándar MTOM permite que aparezcan en cualquier orden).
Así que si su flujo de entrada es, por ejemplo:
- parte binaria 1
- A continuación, la parte principal de XML, por ejemplo.
- A continuación, parte binaria 2
Esto es lo que sucede:
- Para empezar a leer el XML (elemento "a"), debe almacenar binario Parte 1 internamente
- Cuando se lee el contenido de elemento "b", se trata del almacenamiento interno
- Al empezar a leer elemento de "C", que almacena el resto del XML internamente (elemento de "d"), y avanza a la corriente binaria Parte 2. Cuando se lee el contenido del elemento "c" en este punto, se trata directamente de la corriente, y no de almacenamiento.
- Cuando se lee por último elemento "D", el XML proviene de almacenamiento interno
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow