Как изменить wsdl: имя части в C #? - PullRequest
0 голосов
/ 31 августа 2018

Есть ли способ изменить имя части сообщения в WSDL?

У меня есть это в моем WSDL:

<wsdl:message name="myMethodSoapOut">
     <wsdl:part name="myMethodResult" element="s0:myMethodResult"/>
</wsdl:message>

и я хочу изменить имя детали на это:

<wsdl:message name="myMethodSoapOut">
     <wsdl:part name="out" element="s0:myMethodResult"/>
</wsdl:message>

1 Ответ

0 голосов
/ 05 сентября 2018

В вашем веб-методе:

[WebMethod]
public MyReturnInfo MyMethod(MyInputInfo input)
{
//your code
return yourInfo;
}

Скажем так, выход возвращаем как выходной параметр:

[WebMethod]
public void MyMethod(out MyReturnInfo @out, MyInputInfo input)
{
//your code
@out = yourInfo;
}

чтобы использовать "in" и "out" в параметрах и сохранить правильные имена элементов:

[WebMethod]
public void MyMethod( [System.Xml.Serialization.XmlElement("myInfoResponse", Namespace = "the_name_space_of_the_response")]out MyReturnInfo @out,
[System.Xml.Serialization.XmlElement("myInfoRequest", Namespace = "the_name_space_of_the_request")] MyInputInfo @in)
{
var myVar = DoSomething(@in);
//your code
@out = yourInfo;
}

и, наконец, wsdl:

<wsdl:message name="myInfoSoapIn">
     <wsdl:part name="in" element="s0:myInfoRequest"/>
</wsdl:message>
...
<wsdl:message name="myInfoSoapOut">
     <wsdl:part name="out" element="s0:myInfoResponse"/>
</wsdl:message>

Благодаря PD;)

...