このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
CreateMessage メソッド (MessageVersion, String, StreamWriterDelegate)

StreamMessageHelper.CreateMessage メソッド (MessageVersion, String, StreamWriterDelegate)

指定されたバージョン、アクション、およびデリゲートを使用して、ストリームからメッセージを作成します。

名前空間:  Microsoft.ServiceBus.Web
アセンブリ:  Microsoft.ServiceBus (Microsoft.ServiceBus.dll)

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

パラメーター

version
型: System.ServiceModel.Channels.MessageVersion
新規作成するメッセージに使用するアドレス指定とエンベロープのバージョンを指定します。REST を使用して要求が行われた場合、Addressing および Envelope のバージョンは None です。
action
型: System.String
メッセージの処理方法の説明。HTTP 要求に対する応答として送信されるメッセージの場合、この値は "GETRESPONSE" である必要があります。
writer
型: Microsoft.ServiceBus.Web.StreamWriterDelegate
CreateMessage() が Message の本文を設定するために Stream をコールバックし、要求できるようにするデリゲート。

戻り値

型: System.ServiceModel.Channels.Message
ストリームで作成された Message を返します。

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

コミュニティの追加

追加
表示:
© 2015 Microsoft