.net 序列化的注意事项

1. 事件的序列化
 序列化可以对属性增加[NonSerialized]不进行序列化,但事件无法标记,此时需要将事件转为filed类型,标记变为:
 [field:NonSerialized]

2. 不同版本的序列化兼容问题
SerializationException: ObjectManager 发现链接地址信息的数目无效。这通常表示格式化程序
在对Error集合的序列化对象进行反序列化时,软件报错误“ObjectManager 发现链接地址信息的数目无效。这通常表示格式化程序”。
对比旧版本序列化部分完全一致,经过分析发现,对象所在类的命名控件被修改,致使该错误发生。经过还原原有命名空间,该错误解决。

3. Serialization:对象图不能为 null。 参数名: graph
在打开某已序列化的文件,之后对齐属性修改,之后序列化保存时报错。
由于该类之前有做修改,而反序列化旧版本的文件会自动填充null至于新属性,所以反序列化正常。
而再次序列化时,默认产生的空值将无法被序列化。
具体案例:
假设class a {string name;},序列化得到 sa文件。之后我改了class a{string name; string age;}。之后通过新的class a 反序列化sa 得到 aentity。这个时候我再次序列化aentity 此时,age为null。

posted @ 2017-08-25 12:54  sunlyk  阅读(810)  评论(0编辑  收藏  举报