我是WCF服务的新手。我知道有三种生成代理的方法。
但我很困惑,在哪种情况下我应该使用哪种类型。在我的情况下,我必须为我没有服务代码的第三方服务生成代理。我不想使用添加服务引用,因为它给了我以下问题。这提到stackoverflow question。所以我想使用clientBase。但我想我不能在不使用服务参考的情况下使用它。如果我们选择哪种代理,我很困惑。
答案 0 :(得分:0)
在我的情况下,我必须为第三方服务生成代理,而我没有服务代码。
我将使用此服务有多个应用。
在这种情况下,最好使用 SvcUtil ,因为它可以生成一个所有项目可以使用的单个库,即使它们是.NET库也是如此。生成后,您可以随时进入并调整它。
另一方面,添加服务引用对单个.exe很好,但正如您所发现的,因为您需要重复此过程并且最终会有多个定义WCF类型只会增加维护。
请确保将WCF客户端配置保留在应用程序的app.config中,而不是您的类库的app.config(因为前者可能无法读取)。
如果您的供应商已经关注" WCF the Manual Way… the Right Way" ,那么这会让您的生活更轻松。
然而,SOAP纯粹主义者会争辩说,供应商提供的唯一东西是SOAP WSDL XML文件,无论如何都需要从中生成类型。 (遗憾的是,.NET中的默认行为是从前到后)