In other words: How to change wcf service contract to remove additional "message's" wrapper from soap message (adopt wsdl)?
I have created WCF service which contract is:
[ServiceContract(Namespace = "http://blabla/", Name = "DiagnosticApplication")]
public interface IReceiveApplication
{
[OperationContract]
string Test(XmlElement e);
}
So my SC accepts now such messages
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:epr="http://blabla/">
<soapenv:Header/>
<soapenv:Body>
<epr:Test>
<epr:e>
<anyxml/>
</epr:e>
</epr:Test>
</soapenv:Body>
</soapenv:Envelope>
but legacy client sends such messages (message's epr:e level missed)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:epr="http://blabla/">
<soapenv:Header/>
<soapenv:Body>
<epr:Test>
<anyxml/>
</epr:Test>
</soapenv:Body>
</soapenv:Envelope>
Ok. I have created "wsdl" from zero, first of all with removed message wrappers and then have generated sample contract (cs). I can see that generated code uses MessageContract.IsWrapperd=false near generated message classes, but I can't change generated code, so . I should somehow change operation contract, and ask wcf to generate for me messages with right MessageContract.