Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight和双工WCF服务_C#_Silverlight_Wcf_Silverlight 4.0_Pollingduplexhttpbinding - Fatal编程技术网

C# Silverlight和双工WCF服务

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

我已经向Silverlight应用程序添加了一个WCF服务引用,下面是我从web.config进行的绑定

<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”