IStreamProvider Interfaz
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una interfaz que se puede implementar mediante clases que proporcionan secuencias.
public interface class IStreamProvider
public interface IStreamProvider
type IStreamProvider = interface
Public Interface IStreamProvider
Comentarios
Al escribir un mensaje saliente que contiene un cuerpo transmitido a un sistema de escritura XML, Message utilizará una secuencia de llamadas similar a la siguiente en su implementación OnWriteBodyContents(XmlDictionaryWriter):
Escriba cualquier información necesaria que preceda a la secuencia (por ejemplo, la etiqueta de apertura XML).
Escriba la secuencia.
Escriba cualquier información que siga a la secuencia (por ejemplo, la etiqueta de cierre XML).
Esto funciona bien con codificaciones similares a la codificación XML textual. Sin embargo, hay algunas codificaciones que no proporcionan información del conjunto de información (por ejemplo, etiquetas para iniciar y finalizar elementos XML) de XML junto con los datos contenidos en los elementos. Por ejemplo, para la codificación MTOM, la codificación del mensaje se divide en varias partes. Una parte contiene el conjunto de información XML, que puede contener referencias a otras partes de contenidos de elementos reales. Puesto que el conjunto de información XML será normalmente pequeño en comparación con el contenido transmitido, tiene sentido almacenar en búfer el conjunto de información, escribirlo y, a continuación, escribir el contenido de una manera transmitida. Esto significa que cuando se escribe la etiqueta de elemento de cierre, no deberíamos haber escrito todavía la secuencia.
Para este propósito, se utiliza la interfaz IStreamProvider . La interfaz tiene un método GetStream() que devuelve la secuencia que se va a escribir. La manera correcta de escribir un cuerpo de mensaje transmitido OnWriteBodyContents(XmlDictionaryWriter) es la siguiente:
Escriba cualquier información necesaria que preceda a la secuencia (por ejemplo, la etiqueta de apertura XML)
Llame a la sobrecarga
WriteValue
en el XmlDictionaryWriter que toma IStreamProvider, con una implementaciónIStreamProvider
que devuelve la secuencia que se va a escribir.Escriba cualquier información que siga a la secuencia (por ejemplo, la etiqueta de cierre XML)
Con este enfoque, el sistema de escritura XML puede escoger cuándo llamar GetStream() y escribir los datos transmitidos por secuencias. Por ejemplo, los sistemas de escritura XML textual y binario lo llamarán inmediatamente y escribirán el contenido transmitido entre las etiquetas de cierre e inicio. El sistema de escritura de MTOM puede decidir llamar GetStream() posteriormente, cuando esté listo para escribir la parte adecuada del mensaje.
Métodos
GetStream() |
Obtiene una secuencia. |
ReleaseStream(Stream) |
Libera una secuencia para la salida. |