我试图将带有通用键和值类型的项目列表发送到asp.net webservice。
我怎样才能做到这一点?
我用List<Dictionary<String, String>>
试了一下,但这不起作用。我没有异常,但是当我在webserivice中破解时,我的集合为空。
数据可能如下所示:
{"Data":{"fieldtype":"integer","isrequired":true,"isrequirederror":"Invalid Data"}}.
但正如我所说,Keys是通用的,有时会有更多的属性,有时候不是。
很多
这篇文章无法帮助我的顺便说一下: How to send a hashtable to an asmx webservice?
答案 0 :(得分:1)
实现IDictionary
的类无法序列化为XML,这是XmlSerializer
类的限制。它通常的解决方法是实现IXmlSerializable
以提供自定义序列化逻辑,如shown here。另一种选择是将字典转换为键/值对列表
答案 1 :(得分:1)
如果您想在服务中引入任何类型的泛型 - 从序列化/反序列化问题开始并完成互操作性问题,您将特别难以使用SOA和WCF。
不要使用通用参数。由于读/写操作性能,Hashtable(或Dictionary)仅在进程内使用中才有意义。如果您想通过线路传输这种格式的内容,请使用以下结构: 对的列表(字符串,字符串)。
答案 2 :(得分:0)
{"Data":
{"fieldtype":"integer",
"isrequired":true,
"isrequirederror":"Invalid Data"
}
}
:这不是List<Dictionary<String, String>>
这是一个Dictionary<string, Dictionary<String, String>>
这有帮助吗?