WP7 - 将MessageHeader添加到WCF Soap服务调用

时间:2013-01-20 11:18:46

标签: c# wcf windows-phone-7 soap

我花了两天时间尝试配置我的WP7应用程序,以便将邮件标头发送到我的WCF肥皂服务。我只是想在每次通话时发送一串信息。

网上有很多指南,但我似乎无法将它们拼凑起来以获得我想要的东西,并且可以在一些帮助下真正做到。

那么 - 有人可以帮我用SIMPLEST方法向我的服务添加消息检查器并在我的应用程序中附加标题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

对于WP7--没有“简单”的方法可以做到这一点。 WFS中的大多数可扩展点都不存在于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);
}

如果在所有操作中执行此操作太多,则可以选择创建一个包装客户端的类,并为所有操作执行此操作。仍然有很多代码,但至少它会集中在一个点上,而不是遍布整个应用程序。

最后一种选择(我现在记得)是使用消息检查器。他们不是平台的一部分,但根据您的情况,我已经为http://blogs.msdn.com/b/carlosfigueira/archive/2011/06/21/wcf-extensibility-extensibility-in-windows-phone-and-silverlight-3.aspx的博客文章中显示的检查员/格式化程序实施了一项支持。对于简单的场景,它应该可以正常工作。