.NET 中的 SOAP 客户端引用现有的 WSDL

SOAP client in .NET referencing existing WSDL

我已经读过这个关于 SOAP and WSDL in .NET

的有用帖子

我正在尝试构建一个 C# SOAP 客户端,我已按照说明向 WSDL 添加了一个 "service reference",但是应该生成的客户端代理是 没有生成。我只能看到 类、接口、枚举等……我不能声明任何东西。我就是不能:

MyService.MyWebServiceSoapClient ws = new MyService.MyWebServiceSoapClient();

因为我没有客户端要初始化

所以我尝试打开开发者控制台并输入

wsdl.exe <url_to_my_wsdl>

但是它返回了一个我无法理解的错误。沿线的东西:

Impossible to import operation 'someOperation'.
Element parameters, belonging to the namespace urn:my:namespace, imported in 2 differents context: PrimitiveMapping, MembersMapping.

有什么想法吗?谢谢。

我自己找到了解决这个问题的方法。经过大量的试错修改后,我得出的结论是 "parameters" 这个词在 .NET 环境中不是很受欢迎。所以我用 "params" 改变了它,现在它被 wsdl.exe

正确导入了

所以我以前的 WSDL 的一部分是这样的:

<wsdl:message name="isServiceOnline">
    <wsdl:part name="parameters" element="MyElement"></wsdl:part>
</wsdl:message>

它的新版本是:

<wsdl:message name="isServiceOnline">
    <wsdl:part name="params" element="MyElement"></wsdl:part>
</wsdl:message>