0

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

服务.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);
4

1 回答 1

0

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

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

于 2013-10-02T21:54:18.907 回答