C#序列化后多了一个__type属性,怎么把这个属性去掉?

爱知菜 2012-06-08 05:47:02
加上了[KnowType()]属性后,序列化的类都有一个__type属性,怎么把它去掉啊
...全文
270 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
effun 2012-06-09
  • 打赏
  • 举报
回复
DataContractJsonSerializer的构造函数里有一个参数alwaysEmitTypeInformation,设置为false就可以去掉顶层的__type了,但如果某个属性的类型也是复杂类型,还是有可能会被加上__type的。
爱知菜 2012-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

肯定不能去掉了,去掉了它就不知道如何反序列化了。除非你可以保证你序列化的类型都是最终明确类型,不要出现类似Object的类型,否则那个属性不可少,告知对方反序列化时用何种类型还原用的。
[/Quote]
先谢谢你啊,不过我序列化本来就不是给别人反序列化的,我是给手机客户端传个数据而已,实在不行用正则式把它替换掉算了.....
qldsrx 2012-06-08
  • 打赏
  • 举报
回复
肯定不能去掉了,去掉了它就不知道如何反序列化了。除非你可以保证你序列化的类型都是最终明确类型,不要出现类似Object的类型,否则那个属性不可少,告知对方反序列化时用何种类型还原用的。
SocketUp 2012-06-08
  • 打赏
  • 举报
回复
不懂,粘完整代码看看

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧