我必须连接到第三方客户端提供的服务。问题是动态地做到这一点。当我使用添加Web引用以静态方式生成代理时,一切正常。使用WsdlImporter和CodeDom,我得到一些奇怪的生成类(每个实例的代理客户端)。
然后我看到在添加服务引用的情况下,我得到了与WsdlImporter相同的值。我的结论WsdlImporter由svcutil.exe使用。
有人知道这里有什么不同吗? 服务正在使用SOAP1.1
答案 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
谢谢大家,现在可以使用