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

lac*_*dev 3 wcf

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

mar*_*c_s 7

执行以下步骤:

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

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

    YourServiceClient client = new YourServiceClient();
    client.CallSomeMethod();
    
    Run Code Online (Sandbox Code Playgroud)

    这将使用配置文件中定义的默认服务端点中的所有设置

  • 如果您需要提供不同的端点,请执行以下操作:

    YourServiceClient client = 
       new YourServiceClient("default", "http://server/YourOtherService.svc");
    client.CallSomeMethod();
    
    Run Code Online (Sandbox Code Playgroud)

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

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