So i noticed if i "Generate Message Contracts" then my SOAP envelope has the operation in the header:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">GetCapabilities</Action>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"></s:Body>
</s:Envelope>
And the code is much cleaner and makes more sense (BUT DOES NOT WORK on the vendors remote Java based web service):
Client client = new Client();
GetCapabilitiesResponse response = client.GetCapabilities(new GetCapabilitiesRequest());
litCapabilities.Text = response.Capabilities.version;
client.Close();
On the other hand, if i leave it off the SOAP Envelope has the operation in the body as it should (works on the vendor):
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header></s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetCapabilities xmlns="http://www.opengis.net/cat/csw/2.0.2"></GetCapabilities>
</s:Body>
</s:Envelope>
But the code doesn't make as much sense:
Client client = new Client();
CapabilitiesType response = client.GetCapabilities(new GetCapabilitiesType1());
litCapabilities.Text = response.version;
client.Close();
Can someone give me a good explanation as to what is going on here? Why is this?