【发布时间】:2013-10-03 05:54:18
【问题描述】:
我有一个反序列化 web 方法,它返回 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);
【问题讨论】:
-
ASMX 是一项遗留技术,不应用于新开发。 WCF 应该用于 Web 服务客户端和服务器的所有新开发。一个提示:微软已经在 MSDN 上停用了ASMX Forum。
-
我应该采用哪种技术而不是使用 ASMX? MVC?
-
WCF 是 ASMX 的替代品(并且做了很多、很多、更多)。
标签: web-services list soap asmx webservice-client