选择我们应该采用哪种类型的WCF代理生成路径?

时间:2016-12-27 11:58:09

标签: c# wcf wcf-endpoint wcf-proxy

我是WCF服务的新手。我知道有三种生成代理的方法。

  1. 使用服务参考
  2. 使用SvcUtil
  3. 使用ClientBase
  4. 但我很困惑,在哪种情况下我应该使用哪种类型。在我的情况下,我必须为我没有服务代码的第三方服务生成代理。我不想使用添加服务引用,因为它给了我以下问题。这提到stackoverflow question。所以我想使用clientBase。但我想我不能在不使用服务参考的情况下使用它。如果我们选择哪种代理,我很困惑。

1 个答案:

答案 0 :(得分:0)

  

在我的情况下,我必须为第三方服务生成代理,而我没有服务代码。

     

我将使用此服务有多个应用。

在这种情况下,最好使用 SvcUtil ,因为它可以生成一个所有项目可以使用的单个库,即使它们是.NET库也是如此。生成后,您可以随时进入并调整它。

另一方面,

添加服务引用对单个.exe很好,但正如您所发现的,因为您需要重复此过程并且最终会有多个定义WCF类型只会增加维护。

请确保将WCF客户端配置保留在应用程序的app.config中,而不是您的类库的app.config(因为前者可能无法读取)。

如果您的供应商已经关注" WCF the Manual Way… the Right Way" ,那么这会让您的生活更轻松。

然而,SOAP纯粹主义者会争辩说,供应商提供的唯一东西是SOAP WSDL XML文件,无论如何都需要从中生成类型。 (遗憾的是,.NET中的默认行为是从前到后)