更新到 Catel 5.0.0 -- 序列化问题

Updating to Catel 5.0.0 -- Serialization problems

.NET 4.7.2、WPF

我有一个使用 Catel 4.4.0 的旧项目。我需要将它更新到最新的 .NET 和包版本,所以我将它移至 Catel 5.0.0 作为第一步。 (我最终会把它移到最新版本。)

Catel 4.4.0 下的我的模型,其中所有模型都派生自 SavableModelBase,其中包括序列化和验证。对于 5.0.0,看起来您可以拥有 SavableModelBase 或 ValidatableModelBase,但不能同时拥有两者。我决定更改所有 类 以使用 ValidatableModelBase,因为验证在我的项目中很重要。

我搜索了使用 Catel 5.0.0 的 Loading/Saving 模型的示例,但我发现的几个示例似乎使用的是 5.0.0 之前的代码。

https://docs.catelproject.com/vnext/setup-deployment/update-guides/catel-5.0/ https://catelproject.atlassian.net/wiki/spaces/CTL/pages/15630363/Serializing+data+from+to+disk

我以前能用:

myModel.Save(myStream, SerializationMode.Xml);
MyModel model = MyModel.Load(myStream, SerializationMode.Xml);

但是,当然,所有这些都随着 5.0.0 发生了变化。

有人参考过使用 Catel 5.0.0 加载和保存模型吗?我应该在通用 Microsoft .NET 代码中执行此操作吗?我担心的是我的用户拥有必须与更新后的软件兼容的现有数据文件。

如果您有任何问题,请告诉我。

谢谢, 兰迪

SavableModelBase 在 5.0 中变成了一个包装器。 ModelBase 使用 ISerializer,您可以简单地将模型传递给序列化程序(例如 IXmlSerializer)。

我建议立即升级到 5.12,这会让您省去一些麻烦。