给一点背景。
我创建了一个应用程序,允许用户保存设置,然后在以后调用设置。为此,我创建了一些可序列化的对象。我已经使用 BinaryFormatter 轻松完成了这项工作。
当我升级软件并添加新设置时,我开始遇到问题。现在我的可序列化对象不匹配,所以我必须更新文件。我已经成功完成了几个版本。但要做到这一点,我尝试反序列化文件,如果它引发异常,我尝试使用下一个版本。. .然后是下一个。. .然后是下一个。. . 直到我找到合适的。然后我必须为每个旧版本编写转换函数以将其转换为最新版本。我也创建了一个“修订”文件,所以我可以先检查他们有什么版本然后升级它,但我仍然必须保持很多不同的“版本”并为它们编写转换函数. . . 如果我继续走这条路,这对我来说似乎天生就很混乱,而且以后很容易膨胀。
必须有更好的方法来做到这一点,我只是不确定如何。
谢谢