使用WCF重用第三方Web服务

时间:2011-03-04 16:03:29

标签: wcf

我有第三方网络服务,我打算在2个不同的应用程序中使用它:

  1. Windows Workflow(WF)项目
  2. 一个网站
  3. 现在,从这两个应用程序中我手动添加对第三方Web服务的引用。调用所需的方法。这意味着我在两个地方生成了这个代理层。

    正在寻找的是一种方法来创建(我不确定正确的用词,对不起的家伙)第三方网络服务在一个地方&让2个应用程序重复使用它。

    可以使用WCF实现这一点,例如在WCF中包装第三方Web服务。

    这种做法是否合适?任何帮助或指示都会有很大的帮助,没有做过太多基于服务的开发。

    环境:网站,WF项目驻留在2个不同的服务器上(Windows 2003 R2)。

    环境(开发):windows 7 enterprise / vs 2010 / c#

    由于

    更多细节:

    想想我在我的第一个查询中使用了正确的单词,以下是我正在寻找的内容。为什么我需要它,我需要从新的WCF服务调用第三方Web服务。这个新的WCF服务将从其他应用程序(winforms / WF /网站)调用,而不是调用第三方服务。这个想法是能够在不改变实施的情况下切换第三方服务(vendore)在一个地方。我们使用hr-xml格式的请求/响应&我们所有的供应商(现有的或未来的)都支持我们所在行业的hr-xml格式。如果我们使用类库,那么要更改供应商,我们应该重新编译&正确分配dll,我们不想这样做。我不确定要实现这整个功能的架构。正确方向的任何指针都将是一个很大的帮助。

    由于

2 个答案:

答案 0 :(得分:2)

你的任务确实很有意义 - 我认为应该很容易实现:

  • 创建一个新的类库程序集(“WebServiceClient”或任何你想要调用它的程序)
  • 在新项目中,您Add Service Reference - 这将创建必要的WCF代理类和配置文件
  • 编译该类库

从这两个应用程序中,您应该能够引用该Web服务客户端程序集并使用它 - 您只能在该公共程序集中使用客户端代理的代码,但您可以从任意数量的应用程序中使用它。

需要记住的一点是:您需要将Web服务的配置复制并粘贴到主应用程序的配置中(app.config用于Winforms /控制台应用程序,web.config用于网站/ Web应用程序)因为它不能直接从类库的配置文件中读取(.NET不会使用它)。

答案 1 :(得分:0)

在这种情况下,我认为,WCF服务将是gr8的想法。如果更改供应商,您不想重新组合客户端应用程序。