日期:2014-05-18  浏览次数:21152 次

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

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