如何在代码中使用wsDualHttpBinding设置WCF客户端?

我需要连接到我写的WCF服务,而不必为我正在编写的客户端应用程序部署app.config。 但是,我一直在努力想弄清楚如何在代码中设置客户端的东西。 这是我已经得到的…有没有人有任何想法我需要做什么才能使这个工作? 我真的很感激。

这是我到目前为止的代码:

String baseAddress = "http://localhost/CommService"; WSDualHttpBinding binding = new WSDualHttpBinding(); binding.Name = "WSDualHttpBinding_ICommService"; binding.ClientBaseAddress = new Uri(baseAddress); binding.ReliableSession.Ordered = true; binding.ReliableSession.InactivityTimeout = new TimeSpan(0, 10, 0); binding.ReceiveTimeout = new TimeSpan(0, 10, 0); binding.SendTimeout = new TimeSpan(0, 0, 5); InstanceContext context = new InstanceContext(this); client = new CommServiceClient(context, "WSDualHttpBinding_ICommService"); client.Endpoint.Binding = binding; 

这是我的客户端应用程序的app.config:

                     

您可以轻松实现您想要的效果。 见下面的代码:

  Uri baseAddress = new Uri("http://localhost/CommService"); WSDualHttpBinding wsd = new WSDualHttpBinding(); EndpointAddress ea = new EndpointAddress(baseAddress, EndpointIdentity.CreateDnsIdentity("localhost")); client = new CommServiceClient(new InstanceContext(this), wsd, ea); 

让我解释一下:

  • 首先,我们使用默认设置创建WSDualHttpBinding的实例(这些是生成的app.config所具有的确切设置)。 如果要修改任何设置,可以通过公开的属性对其进行修改。
  • 然后我们创建一个带有所需URL和身份的EndPointAddress。 无需将其与绑定链接,因为我们将在Service Client构造函数中链接所有这些绑定。
  • 最后我们创建了服务客户端。 其中一个构造函数重载允许我们指定Binding和Endpoint Address。
  • 通常,app.config文件中可用的每个元素在.NET代码中都有一个关联的类,并且每个属性或子元素在指定的类中都有一个关联的Property。