Как я могу предотвратить следующий вложенный запрос мыла? - PullRequest
0 голосов
/ 22 июня 2011

У меня есть операция WCF, которая определяется следующим образом:

[OperationContract(Name="GetColorsRQ")]
GetColorsRS GetColors(GetColorsRQ rq);

Где GetColorsRS будет содержать ответ, а GetColorsRQ - запрос. Когда я запускаю это, он создает следующий запрос мыла (я включаю только начало запроса)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:ns="http://www.abc.com">
<soapenv:Header/>
<soapenv:Body>
      <ns:GetColorsRQ>
      <ns:rq Target="Test" Version="0">
      ....

Когда я использовал тот же запрос от службы asmx, он не вложил бы запрос, он сделал бы это следующим образом:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:ns="http://www.abc.com">
<soapenv:Header/>
<soapenv:Body>
      <ns:GetColorsRQ Target="Test" Version="0">
      ....

Обратите внимание, теперь нет ns: rq, а атрибуты размещены на узле ns: GetColorsRQ.

1 Ответ

0 голосов
/ 27 июня 2011

После исследования я решил, что должен использовать MessageContract вместо DataContract, чтобы иметь больше контроля над сообщением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...