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

时间:2013-10-02 20:59:04

标签: web-services list soap asmx webservice-client

我有一个反序列化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);

1 个答案:

答案 0 :(得分:0)

Web服务不返回数组,也不返回列表。他们返回XML。它们返回的XML由客户端代码解释为列表,数组或其他任何内容。

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