2

在将我的 WPF MVVM 应用程序移植到 MvvmCross 时,对于核心程序集中的持久用户设置,推荐的方法是什么?目前我正在为此任务使用 Properties.Settings 。理想情况下,我想要一个可以很好地与 Windows 上的 ClickOnce 升级配合使用的解决方案。

谢谢!

4

1 回答 1

1

如果您只想支持 WPF,那么您可以继续使用 properties.settings。

如果您也想在其他平台上支持使用本机技术的设置,那么您可以为您的设置创建一个接口/抽象,然后使用依赖注入在每个平台上注入适当的设置实现。如果您愿意,您可以在插件中执行此操作 - 但要开始使用,最简单的方法是在 Setup.cs 的 UI 项目中注入它(有关如何构建插件,请参阅https://speakerdeck.com/cirrious/ mvvmcross 中的插件

我可能会做的......是使用可移植的设置实现 - 使用简单的 JSON 文件或使用小型 SQLite 数据库(通过 SQLite-net 访问)。这将使您能够在所有平台上重用完全相同的代码。我不知道这将如何与 ClickOnce 一起使用(我对 ClickOnce 了解不多),但我假设 ClickOnce 会在升级期间保留这些数据文件。

对于可移植地保存 JSON 文件,请参阅https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.Core/Models/FavoritesSaver.cs

对于使用 SQLite-net,请参阅https://speakerdeck.com/cirrious/using-sqlite-dot-net-in-mvvmcross - 但请注意 SQLite-net 的 nuget 包仍然存在 x64/x86 上的未解决问题/ARM 差异 - 请参阅如何使用 nuget 分发特定于处理器的 WindowsStore 程序集:/

于 2013-05-16T07:07:12.777 回答