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