WSDL Web 服务 returns 来自 C# 的空数组

WSDL Web Service returns empty array from C#

我正在使用具有以下地址的 Web 服务: https://api.n11.com/ws/CityService.wsdl

该服务有一个方法 'GetCities'。您可以使用 http://wsdlbrowser.com/

进行测试

问题是当我从 C# 获取城市时,它 returns 一个包含 81 个元素的数组 但是 'cityId' 和 'cityName' 为空。

请帮忙!

我的代码如下所示:

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

        GetCitiesResponse getCitiesResponse = port.GetCities(request);

        var list = getCitiesResponse.cities;

我遇到了同样的行为。

我的假设是,服务:https://api.n11.com/ws/CityService.wsdl 没有返回值。

知道了!!!

Visual Studio 弄乱了 XmlElementAttribute 上的 Order 参数,因此,在您的 References.cs 文件中更改以下内容:

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

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

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

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