WCF - 动态调用实现相同接口的不同Web服务端点

时间:2011-01-07 20:57:02

标签: wcf

我有许多不同的应用程序实现相同的合同。在我的主应用程序中,我想有一个代理。然后动态地,给定特定应用程序的Uri,我将创建一个Web服务请求并调用它。怎么能实现呢?谢谢!

2 个答案:

答案 0 :(得分:7)

执行以下步骤:

  • 基于一项服务生成客户端代理
  • 这将为您生成C#/ VB.NET类,以及app.config(如果您的客户端是Web应用程序,则为web.config

  • 调用默认服务端点时,您可以执行以下操作:

    YourServiceClient client = new YourServiceClient();
    client.CallSomeMethod();
    

    这将使用配置文件

  • 中定义的默认服务端点的所有设置
  • 如果您需要提供不同的端点,请执行以下操作:

    YourServiceClient client = 
       new YourServiceClient("default", "http://server/YourOtherService.svc");
    client.CallSomeMethod();
    

    客户端构造函数有一个重载,它将带有两个参数:客户端配置文件中的端点配置名称(在添加服务引用后需要查看),以及端点URL想要连接(可能与配置中存储的内容不同)。

如果所有其他参数(如服务合同,绑定信息等)保持不变,则此方法应该有效,并且应该允许您使用第二个构造函数重载连接到任意数量的不同端点。

答案 1 :(得分:3)

实例化服务客户端时,可以设置uri

ReconcileSvc.ReconcileClient client = new ReconcileClient();
client.Endpoint.Address = new System.ServiceModel.EndpointAddress(uri);

希望它有所帮助。

相关问题