我正在尝试保存我用Unity制作的、用c#编写的游戏数据。我能够序列化和反序列化我的数据。当我反序列化了一个文件,而我序列化的类删除了一个属性时,问题就出现了。当这种情况发生时,会抛出一个SerializationException
。
:假设我有这样一个初始类:
[Serializable]
public class foo {
public int bar;
public int baz;
}
然后将其序列化到一个文件中。然后我修改这个类并删除public int baz
。下次我尝试反序列化该文件时,它将抛出异常,因为它找不到将baz
放入foo
类的位置。
是否有一种方法可以告诉反序列化器忽略额外的属性或将类foo
转换为可以处理额外对象的东西?
你试过使用Json.NET吗?它可以容忍额外的属性(以及更快的速度和其他添加的功能)。
我刚刚测试了(保存bar和baz,然后删除baz,并反序列化):
public class foo {
public int bar {get;set;}
public int baz {get;set;}
}
我相信您正在寻找版本容忍序列化…