如何从WebService返回一个哈希表
本文关键字:一个 哈希表 WebService 返回 | 更新日期: 2023-09-27 18:15:55
我的webservice返回所有字符串变量。现在我想修改我的服务,以便它可以返回HashTable对象。这是我的WebService入口点(方法)的签名:
public void getPrevAttempts(string fbUserId, string studentId, string assessmentId, out string isAuthenticated, out HashTable attempts)
HashTable中的记录是从SQL查询的结果中插入的。每当我试图运行我的服务时,我都会被重定向到accessdenie .htm页面(因为我的Web。配置中有这个条目(<customErrors mode="On" defaultRedirect="accessdenied.htm"/>
)。是否有任何方法返回HashTable
或SQL查询的结果?
例外:The type System.Collections.Hashtable is not supported because it implements IDictionary.
将数据序列化为JSON字符串并返回给客户端。
var serializer = new JavaScriptSerializer();
HashTable ht = New HashTable();
//Populate ht.
response = serializer.Serialize(ht) // This will serialize the data to JSON format.
在客户端,使用
反序列化httpResponse = JSON.parse(response); //httpResponse will have key value pair data as you created in server.
我认为你应该创建自己的自定义对象或创建一个数组。然后可以将其转换回HashTable。使用out参数也不是一个好主意。最好创建一个带有IsAuthenticated和Attempts属性的自定义类。
您可以轻松地将HashTable
转换为List<KeyValuePair<string, string>>
并返回…
不返回数据结构,而是考虑返回数据-并在客户端重建数据结构。