How can I prevent the following nested soap request?
I have a WCF Operation that is defined like this:
[OperationContract(Name="GetColorsRQ")]
GetColorsRS GetColors(GetColorsRQ rq);
Where GetColorsRS will hold the response and GetColorsRQ holds the request.  When I run this, it creates the following soap request (I am only including the beginning of the 开发者_如何转开发request)
<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">
      ....
When I was using the same request from an asmx service, it would not nest the request, it would do it like the following:
<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">
      ....
Notice, now there is no ns:rq and the attributes have been placed on the ns:GetColorsRQ node.
After researching, I have determined that I must use MessageContract instead of DataContract to have more control over the Message.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论