So you are doing a describeSObjects
for Contact and there is a problem with urn:address
coming back in the response.
Firstly, while you might be changing the WSDL for each API version, make sure that the endpoint API version matches. The namespace for the soapType enumerations location and address were changed between v34.0 and v35.0 (See also - Salesforce winter 16 breaking the partner wsdl changes related to tns and uns namespace conflict). An API version mismatch could certainly produce unexpected results.
Next up I'd look at the raw SOAP response coming back from the Partner API. I use SOUP UI to test this sort of directly request.
Request:
URL: https://mydomain-dev-ed.my.salesforce.com/services/Soap/u/43.0/00D7F0000000001
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com">
<soapenv:Header>
<urn:SessionHeader>
<urn:sessionId>00D7F0000000001!AR_not_a_real_session_id_ySaEz_JEf1jRuJcPl7KJAT0</urn:sessionId>
</urn:SessionHeader>
</soapenv:Header>
<soapenv:Body>
<urn:describeSObjects>
<urn:sObjectType>Contact</urn:sObjectType>
</urn:describeSObjects>
</soapenv:Body>
</soapenv:Envelope>
Response:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:partner.soap.sforce.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header>
<LimitInfoHeader>
<limitInfo>
<current>8</current>
<limit>15000</limit>
<type>API REQUESTS</type>
</limitInfo>
</LimitInfoHeader>
</soapenv:Header>
<soapenv:Body>
<describeSObjectsResponse>
<result>
<activateable>false</activateable>
<!-- ... -->
<fields>
<!-- ... -->
<label>Other Address</label>
<!-- ... -->
<name>OtherAddress</name>
<!-- ... -->
<soapType>tns:address</soapType>
<!-- ... -->
</fields>
<!-- ... -->
<fields>
<!-- ... -->
<label>Mailing Address</label>
<!-- ... -->
<name>MailingAddress</name>
<!-- ... -->
<soapType>tns:address</soapType>
<!-- ... -->
</fields>
<!-- ... -->
<keyPrefix>003</keyPrefix>
<label>Contact</label>
<labelPlural>Contacts</labelPlural>
<!-- ... -->
</result>
</describeSObjectsResponse>
</soapenv:Body>
</soapenv:Envelope>
So that seems fine for a v43.0 Partner API call where I'd expect the namespace to be tns (urn:partner.soap.sforce.com).
Check your generated C# proxy code. I have the following:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:partner.soap.sforce.com")]
public enum fieldType {
@string,
// ...
location,
address,
anyType,
complexvalue,
}
and
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.7.2612.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="urn:partner.soap.sforce.com")]
public enum soapType {
[System.Xml.Serialization.XmlEnumAttribute("tns:ID")]
tnsID,
[System.Xml.Serialization.XmlEnumAttribute("xsd:base64Binary")]
xsdbase64Binary,
//...
[System.Xml.Serialization.XmlEnumAttribute("tns:location")]
tnslocation,
[System.Xml.Serialization.XmlEnumAttribute("tns:address")]
tnsaddress,
[System.Xml.Serialization.XmlEnumAttribute("xsd:anyType")]
xsdanyType,
//...
}
Note how address has the expected tns namespace.