我有一个反序列化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;
}
Client.aspx.cs(WebService是我的服务参考)
WebService.Service1SoapClient client = new WebService.Service1SoapClient();
string stream = client.CreateJsonFromDatabase();
List<WebService.Person> tableData = client.DeserializeJson(stream);
答案 0 :(得分:0)
Web服务不返回数组,也不返回列表。他们返回XML。它们返回的XML由客户端代码解释为列表,数组或其他任何内容。
如果您使用“添加服务引用”来使用此服务,那么您将可以选择如何处理XML中的重复元素。您可以从列表,数组或其他几个选项中进行选择。