澄清System.Runtime.Serialization

时间:2012-08-29 05:56:24

标签: c# serialization

请分享您对 System.Runtime.Serialization 的看法。

我的疑问和怀疑是:

  1. 类及其包含的对象必须在类的顶部有 [Serializable] 关键字。
  2. 如果某个对象是静态类型怎么办。
  3. Serialization如何处理静态对象。
  4. dll版本控制如何影响序列化对象。 (例如,我已经序列化了一个对象,后来在服务器上上传了新版本,对以前的序列化对象有任何影响。)
  5. 提前致谢。

2 个答案:

答案 0 :(得分:1)

序列化是一个非常广泛的主题,你不是在问一个问题 我建议开始阅读msdn库,它会给你一个良好的开端 -
http://msdn.microsoft.com/en-us/library/7ay27kt9(v=vs.100).aspx
http://msdn.microsoft.com/en-us/magazine/cc301761.aspx

答案 1 :(得分:0)

1)并非所有成员都需要序列化,您可以使用[NonSerialized()]

标记它们

2,3)静态不起作用,请参阅serialize-a-static-class

4)我对序列化的经验是序列化对象的任何更改都会破坏反序列化。

更新:Jon Skeet的评论(这是我学习新东西)确实可以处理4)。但要注意网站的botom。你必须非常小心改变属性 Version Tolerant Serialization