Exportar (0) Imprimir
Expandir Tudo

Método CreateMessage (MessageVersion, String, StreamWriterDelegate)

Cria uma mensagem a partir de um fluxo, usando a versão, a ação e o delegado especificados.

Namespace:  Microsoft.ServiceBus.Web
Assembly:  Microsoft.ServiceBus (em Microsoft.ServiceBus.dll)

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

Parâmetros

version
Tipo: System.ServiceModel.Channels..::..MessageVersion
Especifica a versão de Endereçamento e Envelope a ser usada para a mensagem criada recentemente. Se a solicitação for feita usando o REST, a versão de Endereçamento e Envelope será Nenhum.
action
Tipo: System..::..String
Uma descrição de como a mensagem deve ser processada. Para Mensagens enviadas em resposta a uma solicitação HTTP, este valor deve ser “GETRESPONSE”.
writer
Tipo: Microsoft.ServiceBus.Web..::..StreamWriterDelegate
Um delegado que permite que CreateMessage()()()() faça um retorno de chamada e peça por um Fluxo para preencher o corpo da Mensagem.

Valor de retorno

Tipo: System.ServiceModel.Channels..::..Message
Retorna uma Message criada a partir de um fluxo.

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);
        }
    }

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft