这几天净做WebService了,昨天碰到一个问题
服务端代码如下:
Hello为我定义的一个实体类,返回值为一个List
[WebMethod]
public List < Hello > HelloWorld2()
{
List < Hello > lst = new List < Hello > ();
Hello rt = new Hello();
rt.name = " test " ;
lst.Add(rt);
return lst;
}
public List < Hello > HelloWorld2()
{
List < Hello > lst = new List < Hello > ();
Hello rt = new Hello();
rt.name = " test " ;
lst.Add(rt);
return lst;
}
我客户端代码:
Service1SoapClient ssc
=
new
Service1SoapClient();
List < Hello > rt = new List < Hello > ();
rt = ssc.HelloWorld();
MessageBox.Show(rt[ 0 ].name);
List < Hello > rt = new List < Hello > ();
rt = ssc.HelloWorld();
MessageBox.Show(rt[ 0 ].name);
我编译的时候却告诉我不能将List
我就纳闷了,明明定义的服务端的方法返回的是一个List的集合,为什么到了客户端引用的时候就成了一个数组呢?
解决方法:
在客户端所引用的Web服务---右键---Configure Service Reference..(引用服务配置)
出现如下对话框:
从上面的图片可以看出
Collection Type为System.Array类型,将其改为System.Collections.Generc.List就可以正常的接受List类型的集合了