通过二进制序列化在 MVVM 中保存/加载游戏[已关闭]

问题描述 投票:0回答:1

我正在使用 MVVM 模式在 WPF 中开发基于文本的游戏。我想使用二进制序列化来保存和加载游戏,就像我使用 WinForms 时所做的那样,但对于这种模式,我不知道如何正确执行此操作。哪些类需要序列化以保留必要的数据?还有什么需要注意的吗?

c# serialization mvvm
1个回答
2
投票

哪些类需要序列化以保留必要的数据?

这听起来可能是循环,但是:无论你需要保存什么。有时这可能是您的领域模型 - MVVM 中的 M。如果这在您的模型中不是很明显,那么我会说:添加一个新的 DTO 层。这个 DTO 模型很简单:您想要存储的内容。然后您可以保存和加载而不影响系统的其余部分。显然,您需要一些代码来映射到 DTO 模型或从 DTO 模型以及您正在使用的任何模型进行映射。

还有什么需要注意的吗?

如果您所说的“二进制序列化”是指

BinaryFormatter
,那么请非常小心 - 当您对应用程序进行版本控制时,它可能会很脆弱。还有其他序列化器以基于二进制(而不是文本)的格式进行读/写,但它们比 BinaryFormatter 更少……
繁琐

© www.soinside.com 2019 - 2024. All rights reserved.