0

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

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

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

4

3 回答 3

0

这个问题的解决方案是使用ServiceDescriptionImporter。这个导入器作为 wsdl.exe 工作。此外,必须导入 XSD 方案(还要注意嵌套模式)。很好的示例如下: http ://forums.asp.net/post/1740748.aspx

谢谢大家,现在可以用了

于 2012-12-07T13:26:31.440 回答
0

它们只是两种不同的工具。svcutil.exe实际上WsdlImporter在幕后使用(这就是两个输出相同的原因)。Add Web Reference 使用与工具wsdl.exe相同的类(我不知道它们内部使用的是哪个类,但您可以使用 ILSpy 或反射器之类的工具来查看 wsdl.exe 使用什么。

于 2012-12-06T17:50:35.080 回答
0

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

于 2012-12-06T18:39:06.887 回答