2013-02-27 36 views
0

我有一个从WSDL生成的自动生成的代码。 我想在Soap Body中发送一个附加参数。 请求被发送这样的方式,但我想实现<position><positionvar>,代码的其余部分实现(我想给其中未实现的要求,甚至位置和positionvar。如何自定义Soap消息?

<svc:getSomething> 
<module> 
    ........... 
    .............. 
    ................. 
    .................. 
<position>a</position> 
<positionvar>b</positionvar> 
............. 
</module> 

这里我想补充<position><positionvar>

我使用VS 2010的C#赢形式。

+0

最好的办法是修改WSDL,然后重新生成代码。否则,谷歌“C#自定义肥皂消息”:http://msdn.microsoft.com/en-us/library/dkwy2d72%28v=vs.71%29.aspx – paulsm4 2013-02-27 04:09:17

+0

@ paulsm4-我想在重写的类中进行更改。 – 2013-02-27 04:24:53

回答

0

你是问你要修改的WSDL模式,让你可以添加肥皂身体内的另一个元素吗?您需要像这样添加元素在您的WSDL架构中:

<s:element name="getSomething">   
    <s:complexType>  
    <s:sequence> 
      ... 
      <s:element minOccurs="0" maxOccurs="1" name="position" type="s:string"/> 
      <s:element minOccurs="0" maxOccurs="1" name="positionvar" type="s:string"/> 
    </s:sequence> 
    </s:complexType>  
</s:element>  

然后重新添加用于visualstudio的WSDL来解析它。

以上只是我从SOAP体中派生出来的一个例子。根据您自己的WSDL的需要调整它。

+0

@ l46kok-no我想通过代码更改将新参数添加到soap主体,因为我有一个重写的部分服务类。我不想更改WSDL。只是想将这些参数添加到我的Soap请求中。 – 2013-02-27 04:23:11

+0

然后,正如paulsm4指出的那样,您需要使用[SOAP服务方法](http://msdn.microsoft.com/en-us/library/dkwy2d72%28v=vs.71%29.aspx)来实现您想。它很快变得凌乱,但它应该完成工作。 – l46kok 2013-02-27 04:25:28

+0

实际上,我在我的WSDL中拥有这些属性,我只是想实现它们并将它们发送到请求中,是否没有选项向Soap正文/消息提供或发送其他参数,就像我们可以添加自己的自定义标头一样? – 2013-02-27 04:29:30