在我目前的项目中,我们使用二进制和 xml 序列化来存储与winforms应用程序中的用户设置相关的数据。
目前,我们面临两个挑战:
我的主要目标是隔离数据合同,使其不会稀释或约束其他逻辑,以便我可以在需要时为现有数据提供迁移路径。
答案 0 :(得分:1)
为什么不创建一个对等的可序列化对象,其角色只是支持序列化/反序列化?可序列化类可以在其上具有用于将实际对象推入/拉出序列化的方法,或者您可以使用单独的数据映射类(如果您有严重的版本控制问题,这可能会更好)。
这样你的主要应用程序对象是持久无知的,你不必做出妥协 - 比如公共getter和setter和属性 - 只是为了支持序列化。最终结果将是一个序列化层,它与应用层的更改分离。
在n层应用程序中,这些通常被称为数据传输对象(DTO),尽管这个术语在这里描述的情况下并不适用。