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 flujos.
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 usará una secuencia de llamadas similares a las siguientes en su OnWriteBodyContents(XmlDictionaryWriter) implementación:
Escriba cualquier información necesaria que precede a la secuencia (por ejemplo, la etiqueta XML de apertura).
Escriba la secuencia.
Escriba cualquier información que siga a la secuencia (por ejemplo, la etiqueta XML de cierre).
Esto funciona bien con codificaciones similares a la codificación XML textual. Sin embargo, hay algunas codificaciones que no colocan información del conjunto de información XML (por ejemplo, etiquetas para elementos XML iniciales y finales) junto con los datos contenidos en los elementos. Por ejemplo, en la codificación MTOM, el mensaje se divide en varias partes. Una parte contiene el conjunto de información XML, que puede contener referencias a otras partes para el contenido real del elemento. Dado que el conjunto de información XML normalmente será 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 forma transmitida. Esto significa que en el momento en que se escribe la etiqueta de elemento de cierre, aún no deberíamos haber escrito la secuencia.
Para ello, se usa la IStreamProvider interfaz . La interfaz tiene un GetStream() método que devuelve la secuencia que se va a escribir. La manera correcta de escribir un cuerpo de mensaje transmitido en OnWriteBodyContents(XmlDictionaryWriter) es la siguiente:
Escriba cualquier información necesaria que precede a la secuencia (por ejemplo, la etiqueta XML de apertura)
Llame a la sobrecarga
WriteValueen el XmlDictionaryWriter que toma IStreamProvider, con una implementaciónIStreamProviderque devuelve la secuencia que se va a escribir.Escriba cualquier información que siga a la secuencia (por ejemplo, la etiqueta XML de cierre)
Con este enfoque, el escritor XML tiene la opción de cuándo llamar GetStream() y escribir los datos transmitidos. Por ejemplo, los escritores XML textuales y binarios lo llamarán inmediatamente y escribirán el contenido transmitido entre las etiquetas de inicio y fin. El sistema de escritura de MTOM puede decidir llamar GetStream() posteriormente, cuando esté listo para escribir la parte adecuada del mensaje.
Métodos
| Nombre | Description |
|---|---|
| GetStream() |
Obtiene una secuencia. |
| ReleaseStream(Stream) |
Libera una secuencia para la salida. |