Hug*_*ugh 21 wcf serialization
我有一个数据合同,数据成员输入为Dictionary<string, string>.
生成的Web服务引用将其公开为具有该类型的成员ArrayOfKeyValueOfstringstringKeyValueOfstringstring[].
谁看过这个吗?
Mar*_*ann 24
WCF只序列化结构,因为最终在线上的内容必须足够自包含,对任何客户端都有用,而不仅仅是.NET客户端.
在不同平台上开发的某些客户端可能不会共享"字典"的概念,因此将字典序列化为具有关于底层类的隐式知识的表示将太过限制.
客户端甚至可能不是面向对象的.
字典不仅仅是结构 - 它还包含行为(例如,当您分配已存在的密钥时,您覆盖该密钥等),并且该行为无法通过网络传输.
换句话说,字典和许多其他.NET类型不可互操作,因此WCF不会尝试在ServiceContract中保留它们.
您可能最好为数据设计自定义DataContract.
由于WCF必须将所有内容转换为XML,因此必须适合XML ...集合通常会转换为数组.
字典难以表示为xml,这就是为什么你在另一边有这种类型的原因.您可以指定SvcUtil.exe在生成的代理代码中使用特定集合而不是数组,但我不确定它是否适用于Dictionary.我会说你应该避免在这里使用字典,并使用更简单的集合.
我要做的是创建我自己的数据类型,[DataContract]它,使它有两个String类型的字段,然后制作一个你在"字典"中找到的内容的集合.然后通过电线发送该集合,然后将其转换回另一侧的字典.
| 归档时间: |
|
| 查看次数: |
21459 次 |
| 最近记录: |