如何更改序列化对象
本文关键字:对象 序列化 何更改 | 更新日期: 2023-09-27 18:31:47
我有很多序列化对象保存为 XML,但我想为这些对象添加 2 个变量。
这是我的对象:
public class MyObject{
public Int32 MyVariables = 0;
}
这个对象已经被序列化了很多,我希望能够将这些"旧"文件读入我的应用程序。
但是我需要添加更多变量以使对象更好,例如:
public class MyObject{
public Int32 MyVariables = 0;
public Dictionary<string,MyEnum> MyDict = new Dictionary<string,MyEnum>();
}
任何人都可以建议添加这些新变量的最佳方法吗?我实际上更改了MyObject并添加了字典,我相信它不再被正确读取。
提前感谢!
编辑:我也无法在任何地方捕获异常以查看它在对象中读取时失败的地方,我这样做是为了这样做:
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
object obj = formatter.Deserialize(File.Open(Path, FileMode.Open));
编辑2:我相信这实际上可能是由于我在字典中使用枚举作为字典的一部分,我在枚举上方添加了[Serializable]
,但它仍然不起作用 - 想法?
只需添加新变量即可。
如果 XML 序列化程序找不到新变量的适当表示形式,它将使用默认值初始化它们。