首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#序列化后多了一个_type属性,如何把这个属性去掉

2012-06-10 
C#序列化后多了一个__type属性,怎么把这个属性去掉?加上了[KnowType()]属性后,序列化的类都有一个__type属

C#序列化后多了一个__type属性,怎么把这个属性去掉?
加上了[KnowType()]属性后,序列化的类都有一个__type属性,怎么把它去掉啊

[解决办法]
肯定不能去掉了,去掉了它就不知道如何反序列化了。除非你可以保证你序列化的类型都是最终明确类型,不要出现类似Object的类型,否则那个属性不可少,告知对方反序列化时用何种类型还原用的。
[解决办法]
DataContractJsonSerializer的构造函数里有一个参数alwaysEmitTypeInformation,设置为false就可以去掉顶层的__type了,但如果某个属性的类型也是复杂类型,还是有可能会被加上__type的。

热点排行