列表跨Web服务变为Country

我有一个Web服务,在调用时,返回一个多态包含List的Result对象。 但是,当我在客户端应用程序中添加引用时,公共字段将成为客户端应用程序中的Country数组。 如何将客户端应用程序中的字段更改为List?

public Result GetCountryList() { List countries = GrabCountryList(); Result result = new Result(); result.theResult = countries; } 

这是公共财产

 public object theResult { get {return _theResult; } set {_theResult = value;} } 

Mehmet Aras的公认接受的答案

右键单击服务引用,然后选择“配置引用”。 在Collection type下,选择System.Collection.Generic.List。 更新服务参考,应该是好的。

感谢Matt Hamilton提出的从arrays创建新列表的建议。

如果您使用的是VS2008,则服务参考设置表单上有一个高级按钮,可用于控制客户端代理生成。 在那里你可以选择集合类型,列表就在其中。

我相信你必须自己重建清单。 Web服务应该是语言无关的,并且由于List是.NET框架的一部分,因此它不能是序列化返回值的一部分。

重建列表非常简单:

 var countries = new List(result.theResult);