当我使用WsdlImporter时,我使用Add Web Reference获得了不同的数据

时间:2012-12-06 15:52:50

标签: wcf

我必须连接到第三方客户端提供的服务。问题是动态地做到这一点。当我使用添加Web引用以静态方式生成代理时,一切正常。使用WsdlImporter和CodeDom,我得到一些奇怪的生成类(每个实例的代理客户端)。

然后我看到在添加服务引用的情况下,我得到了与WsdlImporter相同的值。我的结论WsdlImporter由svcutil.exe使用。

有人知道这里有什么不同吗? 服务正在使用SOAP1.1

3 个答案:

答案 0 :(得分:0)

他们只是两种不同的工具。 svcutil.exe 实际上使用了WsdlImporter(这就是两个输出相同的原因)。添加Web引用使用与 wsdl.exe 工具相同的类(我不知道它们在内部使用哪个类,但您可以使用ILSpy或反射器等工具来查看wsdl.exe使用的内容

答案 1 :(得分:0)

“添加Web引用”是旧版ASMX支持的一部分,而不是WCF的一部分。如果您有选择,请不要使用它。

答案 2 :(得分:0)

此问题的解决方案是使用ServiceDescriptionImporter。此导入程序正在作为wsdl.exe运行。 此外,必须导入XSD方案(也要注意嵌套模式)。对此有很好的示例如下: http://forums.asp.net/post/1740748.aspx

谢谢大家,现在可以使用