Web services Webservice(asmx)返回数组,而不是列表

Web services Webservice(asmx)返回数组,而不是列表,web-services,list,soap,asmx,webservice-client,Web Services,List,Soap,Asmx,Webservice Client,我有一个反序列化webmethod,它返回webservice(asmx)中的数据列表,我从客户端调用该方法。然而,这个方法给了我一个数组,而不是一个列表。我知道这是因为SOAP响应返回xml格式(或类似的格式) 可以返回列表吗?如果是这样,请告诉我一个想法如果没有,请教我另一种方法。(我不应该使用数组…) service.asmx.cs [WebMethod] public IList<Person> DeserializeJson(string value) {

我有一个反序列化webmethod,它返回webservice(asmx)中的数据列表,我从客户端调用该方法。然而,这个方法给了我一个数组,而不是一个列表。我知道这是因为SOAP响应返回xml格式(或类似的格式)
可以返回列表吗?如果是这样,请告诉我一个想法
如果没有,请教我另一种方法。(我不应该使用数组…)

service.asmx.cs

[WebMethod]
public IList<Person> DeserializeJson(string value)
{
        JavaScriptSerializer js = new JavaScriptSerializer();
        IList<Person> tableData = js.Deserialize<IList<Person>>(value);

        return tableData;
 }
[WebMethod]
公共IList反序列化JSON(字符串值)
{
JavaScriptSerializer js=新的JavaScriptSerializer();
IList tableData=js.反序列化(值);
返回表格数据;
}
Client.aspx.cs(WebService是我的服务参考)

WebService.Service1SoapClient客户端=新建WebService.Service1SoapClient();
string stream=client.CreateJsonFromDatabase();
List tableData=client.DeserializeJson(流);

Web服务不返回数组,也不返回列表。它们返回XML。它们返回的XML由客户机代码解释为列表、数组或其他形式


如果您使用“添加服务引用”来使用此服务,那么您可以选择如何处理XML中的重复元素。您可以从列表、阵列或其他几个选项中进行选择。

ASMX是一种遗留技术,不应用于新的开发。WCF应用于web服务客户端和服务器的所有新开发。一个提示:微软已经退出了MSDN上的。我应该使用哪种技术来代替ASMX?MVC?WCF是ASMX的替代品(而且做的很多,很多,更多)。谢谢你,约翰!那么,您是说我可以将XML转换为列表、数组等选项吗?我可以看到客户端。反序列化JSON(stream)返回“client_Projet_Name.WebService.ActivityFlatTableColumns[]”类型,据我所知,这是一种数组类型?我想我迷路了。你能给我举个例子吗?请阅读我的博客文章“”,看看它是否对你有帮助。另外,“”直接解决了XML的问题。
WebService.Service1SoapClient client = new WebService.Service1SoapClient();
string stream = client.CreateJsonFromDatabase();
List<WebService.Person> tableData = client.DeserializeJson(stream);