Silverlight and Duplex WCF Service
本文关键字:Service WCF Duplex and Silverlight | 更新日期: 2023-09-27 18:12:01
我已经添加了一个WCF服务引用到Silverlight应用程序,这是从web绑定的内容。我的配置看起来像
<bindings>
<wsDualHttpBinding>
<binding name="wsDualHttpBinding">
<security mode="None" />
</binding>
</wsDualHttpBinding>
<pollingDuplexHttpBinding>
<binding name="multipleMessagesPerPollPollingDuplexHttpBinding"
duplexMode="MultipleMessagesPerPoll" />
</pollingDuplexHttpBinding>
</bindings>
下面是创建服务客户端实例的代码段
var serviceClient = new DuplexCallerIdServiceClient(
new PollingDuplexHttpBinding(PollingDuplexMode.MultipleMessagesPerPoll),
new EndpointAddress("http://localhost:51445/Service/MyService.svc"));
我担心的是,为什么我必须在代码中提供一个绝对的url。我有一个使用相同服务的winforms应用程序,我可以只做new DuplexCallerIdServiceClient()
来创建一个服务客户端实例,这似乎很理想。我有什么办法可以解决这个问题吗?我不能更改绑定设置。
谢谢
您不必硬编码服务URL。替换硬编码字符串,该字符串要么作为参数传入,要么进行函数调用(或获取某个对象的属性),以使用有效的服务URL填充构造函数。
这是许多方法中的一种:
var serviceClient = new DuplexCallerIdServiceClient(
new PollingDuplexHttpBinding(PollingDuplexMode.MultipleMessagesPerPoll),
new EndpointAddress(Info.Instance.ServiceURL));
Info是一个单例对象,Instance是一个单例对象的实例,ServiceUrl是一个字符串属性,来自…无论在哪里。数据库,配置文件,硬编码启动等…
注:注意Singleton模式,但是作为配置信息实体,它们是非常有用的。