0

この 2 日間、メッセージ ヘッダーを WCF Soap Service に送信するように WP7 アプリを構成しようとしました。私は単に、すべての呼び出しで一連の情報を送信しようとしています。

オンラインには豊富なガイドがありますが、それらをつなぎ合わせて自分がやりたいことを実現することはできないようで、何らかの助けがあれば実際に行うことができます.

それで、誰かが私のサービスにメッセージインスペクターを追加し、私のアプリ内からヘッダーを添付する最も簡単な方法で私を助けてくれませんか?

ありがとう!

4

1 に答える 1

0

WP7 の場合、「簡単な」方法はありません。WCF のほとんどの拡張ポイントは WP7 プラットフォームには存在しないため、いくつかの代替手段があります。

最も簡単な方法は、 を使用しOperationContextて発信メッセージ ヘッダーを追加することです。これはかなり単純ですが (以下を参照)、呼び出す操作ごとにこれを行う必要があります。

var client = new ServiceReference1.MyServiceClient();
client.OperationCompleted += ...;
using (new OperationContextScope(client.InnerChannel))
{
    OperationContext.Current.OutgoingMessageHeaders.Add(
        MessageHeader.CreateHeader(
            "headerName", "http://header.namespace", "the value"));
    client.OperationAsync(param1, param2);
}

すべての操作でそれを行うのが多すぎる場合、別の方法として、クライアントをラップするクラスを作成し、すべての操作でそれを行います。まだ多くのコードがありますが、少なくともアプリケーション全体に分散するのではなく、1 つのポイントに集中します。

最後の選択肢 (今思い出すことができます) は、メッセージ インスペクターを使用することです。それらはプラットフォームの一部ではありませんが、シナリオによっては、http://blogs.msdn.com/b/carlosfigueira/archive/2011/のブログ投稿に示されているように、インスペクター/フォーマッターのサポートを 1 つ実装しました。 06/21/wcf-extensibility-extensibility-in-windows-phone-and-silverlight-3.aspx . 単純なシナリオでは、問題なく動作するはずです。

于 2013-01-20T18:26:01.317 に答える