在尝试调用 WSDL 定义的函数时,我遇到了一些关于来自 Visual Studio 2010 的无效定义的错误。问题是您不能在两个单独的函数中使用相同的消息定义。所以我必须在他们做同样的事情时创建多个消息定义。
例如:
<message name="Hi">
<part name="input" type="xsd:string">
</message>
<message name="Say_hi_back">
<part name="return" type="xsd:string">
</message>
<message name="I_hate_you">
<part name="return" type="xsd:string">
</message>
<portType name="DataPort">
<operation name="sayHello">
<input message="tns:Hi"/>
<output message="tns:Say_hi_back"/>
</operation>
<operation name="sayIHateYou">
<input message="tns:Hi"/>
<output message="tns:I_hate_you"/>
</operation>
</portType>
现在调用任何一个函数都会给你一个错误。除非我添加一个具有完全相同部分的 Hi2 并将操作定义中的输入消息之一更改为 tns:Hi2。
为什么是这样?这没有道理。我正在构建一个服务,我必须将 customerID 添加到我要构建的所有功能中。一种用于预约的功能,一种用于付款的功能,一种用于所有人的功能。这意味着我将不得不复制消息定义 10 次并将它们命名为 getCustomerID*N*。
很多时候我将不得不有多个输入参数。例如,有人想要在日期 x 和日期 y 之间进行所有约会。(这适用于所有存储的信息,如付款等。)虽然我只需要一条带有 int、日期和日期的消息。我将不得不写一个巨大的文件。
所以我的问题是是否有其他方法可以做到这一点。我只使用 WSDL 两天,那两天充满了问题和欺骗性的“胜利”。你在哪里解决了一个问题,却发现打开了通往下一个问题的大门。
谢谢。:)