如何使用特定的Url地址初始化wcf客户端?

时间:2011-03-02 22:04:21

标签: c# .net wcf

我记得ASMX有一个简单的解决方案:

 MyAsmxServiceClient serviceClient = 
     new MyAsmxServiceClient("http://myServiceLocation/myService.asmx");

如何用WCF实现相同的目标?

2 个答案:

答案 0 :(得分:4)

在同一行,绑定=您正在使用的绑定类型

BasicHttpBinding binding = new BasicHttpBinding();
EndpointAddress address = new EndpointAddress("http://localhost:8888/MyService");        
MyServiceClient sv= new MyServiceClient(binding, address)

答案 1 :(得分:4)

这通常在app.config / web.config中完成:

<system.serviceModel>
    <client>
        <endpoint
            address="http://myServiceLocation/myService.asmx"
            binding="basicHttpBinding"
            contract="IMyServiceContract" />
    </client>
</system.serviceModel>
如果您愿意,可以

could also do it programatically

通常,当您使用svcutil.exe生成客户端代理时,它还会创建一个样本output.config文件,其中包含设置配置所需的全部内容。


更新:

您还可以为终端提供名称:

<system.serviceModel>
    <client>
        <endpoint
            name="foo"
            address="http://foo.com/myService.asmx"
            binding="basicHttpBinding"
            contract="IMyServiceContract" />
        <endpoint
            name="bar"
            address="http://bar.com/myService.asmx"
            binding="basicHttpBinding"
            contract="IMyServiceContract" />
    </client>
</system.serviceModel>

然后:

using (var client = new MyClientProxy("foo"))
{
    var result = client.SomeMethod();
}