C# Silverlight和双工WCF服务
我已经向Silverlight应用程序添加了一个WCF服务引用,下面是我从web.config进行的绑定C# Silverlight和双工WCF服务,c#,silverlight,wcf,silverlight-4.0,pollingduplexhttpbinding,C#,Silverlight,Wcf,Silverlight 4.0,Pollingduplexhttpbinding,我已经向Silverlight应用程序添加了一个WCF服务引用,下面是我从web.config进行的绑定 <bindings> <wsDualHttpBinding> <binding name="wsDualHttpBinding"> <security mode="None" /> </binding> </wsDualHttpBinding> <pollingDuplexH
<bindings>
<wsDualHttpBinding>
<binding name="wsDualHttpBinding">
<security mode="None" />
</binding>
</wsDualHttpBinding>
<pollingDuplexHttpBinding>
<binding name="multipleMessagesPerPollPollingDuplexHttpBinding"
duplexMode="MultipleMessagesPerPoll" />
</pollingDuplexHttpBinding>
</bindings>
我关心的是为什么我必须在代码中提供一个绝对url。我有一个使用相同服务的winforms应用程序,我只需执行新的DuplexCallerIdServiceClient即可创建一个看起来很理想的服务客户端实例。我有没有办法解决这个问题。我无法更改绑定设置
谢谢您不必硬编码服务URL。替换硬编码字符串,该字符串要么作为参数传入,要么进行函数调用,要么获取某个对象的属性以使用有效的服务URL填充构造函数 以下是众多方法中的一种:
var serviceClient = new DuplexCallerIdServiceClient(
new PollingDuplexHttpBinding(PollingDuplexMode.MultipleMessagesPerPoll),
new EndpointAddress(Info.Instance.ServiceURL));
其中Info是一个单例对象,Instance获取单例的实例,ServiceUrl是一个字符串属性,它来自。。。无论什么地方数据库、配置文件、硬编码启动等
注意,使用单例模式时要小心,但作为配置信息实体,它们可能非常有用。您不必硬编码服务URL。替换硬编码字符串,该字符串要么作为参数传入,要么进行函数调用,要么获取某个对象的属性以使用有效的服务URL填充构造函数 以下是众多方法中的一种:
var serviceClient = new DuplexCallerIdServiceClient(
new PollingDuplexHttpBinding(PollingDuplexMode.MultipleMessagesPerPoll),
new EndpointAddress(Info.Instance.ServiceURL));
其中Info是一个单例对象,Instance获取单例的实例,ServiceUrl是一个字符串属性,它来自。。。无论什么地方数据库、配置文件、硬编码启动等
注意,使用Singleton模式时要小心,但作为配置信息实体,它们可能非常有用。可以不带参数调用服务客户端构造函数的原因是地址在app.config中指定。如果您不喜欢url是绝对的,可以使用相对url,如“../MyService.svc”。您可以不带参数调用服务客户端构造函数的原因是地址在app.config中指定。如果您不喜欢url是绝对的,可以使用相对url,如“../MyService.svc”