Exportar (0) Imprimir
Expandir todo

StreamMessageHelper.CreateMessage Método (MessageVersion, String, StreamWriterDelegate)

Crea un mensaje a partir de una secuencia, mediante la versión, la acción y el delegado especificados.

Espacio de nombres:  Microsoft.ServiceBus.Web
Ensamblado:  Microsoft.ServiceBus (en Microsoft.ServiceBus.dll)

public static Message CreateMessage(
	MessageVersion version,
	string action,
	StreamWriterDelegate writer
)

Parámetros

version
Tipo: System.ServiceModel.Channels.MessageVersion
Especifica las versiones Dirección y Sobre que se usan para el mensaje recién creado. Si la solicitud se realiza mediante REST, la versión de Dirección y Sobre es Ninguna.
action
Tipo: System.String
Descripción de cómo debería procesarse el mensaje. Para mensajes enviados como respuesta a una solicitud HTTP, este valor debe ser “GETRESPONSE”.
writer
Tipo: Microsoft.ServiceBus.Web.StreamWriterDelegate
Delegado que permite a CreateMessage() devolver la llamada y preguntar para que una secuencia rellene el cuerpo del mensaje.

Valor devuelto

Tipo: System.ServiceModel.Channels.Message
Devuelve un valor de Message creado por transmisión.

The following example, pulled from the Image sample in the SDK (as well as the REST Tutorial for Windows Azure Service Bus), uses StreamWriterDelegate to asynchronously stream data into a Message object.

    [ServiceBehavior(Name = "ImageService", Namespace = "http://samples.microsoft.com/ServiceModel/Relay/")]
    class ImageService : ImageContract
    {
        const string imageFileName = "image.jpg";

        Image bitmap;

        public ImageService()
        {
            this.bitmap = Image.FromFile(imageFileName);
        }

        public ImageService(string fname)
        {
            this.bitmap = Image.FromFile(fname);
        }

        public Message GetImage()
        {
            MessageVersion msgVersion = OperationContext.Current.IncomingMessageVersion;

            // Create a StreamWriterDelegate that the StreamMessageHelper
            // will call back on when it needs the data 
            // to write to the message body.
            StreamWriterDelegate swDelegate = new StreamWriterDelegate(this.WriteImage);
            Message response = StreamMessageHelper.CreateMessage(OperationContext.Current.IncomingMessageVersion, "GETRESPONSE", swDelegate);


            HttpResponseMessageProperty responseProperty = new HttpResponseMessageProperty();
            responseProperty.Headers.Add("Content-Type", "image/jpeg");
            response.Properties.Add(HttpResponseMessageProperty.Name, responseProperty);

            return response;
        }

        void WriteImage(Stream stream)
        {
            this.bitmap.Save(stream, ImageFormat.Jpeg);
        }
    }

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft