ServiceContractGenerator与ServiceDescriptionImporter

时间:2009-11-18 15:57:10

标签: wcf web-services soap client asmx

我正在尝试构建轻量级SOAP客户端而不使用“添加服务引用”。理想情况下,此客户端应尽可能多地服务。目前,它使用ServiceDescriptionImporter生成服务程序集。不幸的是,这似乎不适用于WCF服务。有人建议我使用ServiceContractGenerator,因为ServiceDescriptionImporter是专门为ASMX网络服务设计的。

如果我使用ServiceContractGenerator,我是否会被锁定只支持WCF服务?

1 个答案:

答案 0 :(得分:7)

ServiceDescriptionImporter是VS中的“添加Web引用”对话框和SDK中的“wsdl.exe”工具使用的类,用于生成“asmx”样式的客户端Web服务代理。 ServiceContractGenerator是WCF的等效项,用于VS中的“Add Service Reference”对话框和SDK中的“svcutil.exe”工具。前者使用asmx客户端基础结构(System.Web.Services.Protocols.SoapHttpClientProtocol和friends),后者使用WCF客户端基础结构(System.ServiceModel.ClientBase和朋友)。

要么能够与大多数服务进行通信 - 也就是说,它旨在使WCF和asmx客户端基础结构能够与一系列Web服务标准进行广泛的互操作。 WCF客户端可以与asmx服务器(以及其他供应商的服务器)通信,反之亦然。

也就是说,WCF比asmx更新,更丰富,更好地支持并支持更多WS标准。您肯定不会被锁定只支持WCF服务。