WSDL Web服务从C#返回空数组 [英] WSDL Web Service returns empty array from C#

查看:112
本文介绍了WSDL Web服务从C#返回空数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用具有以下地址的Web服务:

请帮助!

我的代码如下所示:

  GetCitiesRequest请求=新的GetCitiesRequest();CityServicePortClient端口=新的CityServicePortClient();GetCitiesResponse getCitiesResponse = port.GetCities(request);var list = getCitiesResponse.cities; 

解决方案

知道了!

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

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

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

  [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified,Order = 1)]公共字符串cityCode 

  [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified,Order = 0)]公共字符串cityCode 

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.

Please help!

My code is shown below:

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

        GetCitiesResponse getCitiesResponse = port.GetCities(request);

        var list = getCitiesResponse.cities;

解决方案

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

这篇关于WSDL Web服务从C#返回空数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆