WSDL Web Service returns empty array from C#

2019-06-26 01:18发布

I am using a web service with this address: https://api.n11.com/ws/CityService.wsdl

The service has a method 'GetCities'. You can test it with http://wsdlbrowser.com/

The problem is when I get Cities from C#, it returns an array of 81 elements but 'cityId' and 'cityName' gets null.

enter image description here

Please help!

My code is shown below:

        GetCitiesRequest request = new GetCitiesRequest();
        CityServicePortClient port = new CityServicePortClient();

        GetCitiesResponse getCitiesResponse = port.GetCities(request);

        var list = getCitiesResponse.cities;

2条回答
劳资没心,怎么记你
2楼-- · 2019-06-26 01:46

Got it!!!

Visual Studio is messing up the Order parameter on XmlElementAttribute, so, in your References.cs file change the following:

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public long cityId 

to

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public long cityId 

and

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public string cityCode

to

[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public string cityCode
查看更多
劳资没心,怎么记你
3楼-- · 2019-06-26 02:09

I am experiencing the same behavior.

My assumption is, that the service: https://api.n11.com/ws/CityService.wsdl is not returning a value.

查看更多
登录 后发表回答