假如我有这个类:从旧版本的对象的反序列化对象的新版本
[Serializable]
public class SomeClass
{
public SomeClass() {//init}
public string SomeString {get;set;}
}
在应用程序关闭时,这个类被序列化和反序列化得到的下一次运行。
然后,我建立并发布了应用程序,现在类已更改:
[Serializable]
public class SomeClass
{
public SomeClass() {//init}
public string SomeString {get;set;}
public int SomeInt {get;set;}
}
有没有一种方法来设置属性其默认值的情况下,反序列化它不是在旧序列中发现目的?
我想过的一种方式是保留旧版本的类,然后检查已序列化的版本,然后循环旧对象的属性并将它们设置在新对象中,但这对我来说是无意义的,任何其他有意义的解决方案?
什么串行器?有些接口/属性可用于修改对象[de]序列化的方式,但取决于哪个库。 –
@BradChristie我使用'BinaryFormatter' – FPGA
看一看使用自定义[胶粘剂](http://msdn.microsoft.com/en-us/library/system.runtime.serialization.formatters.binary.binaryformatter.binder (v = vs.110)的.aspx) –