2013-05-16 51 views
2

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

谢谢!

回答

1

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

如果你想支持使用本机的技术在其他平台上为好,那么你可以创建你的设置的接口/抽象的设置,然后使用依赖注入注入每一平台上选择一个合适的设置执行。如果你愿意,你可以在插件中做到这一点 - 但为了开始,最简单的方法是在Setup.cs的UI项目中注入此插件(有关如何构建插件,请参阅https://speakerdeck.com/cirrious/plugins-in-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网,看到https://speakerdeck.com/cirrious/using-sqlite-dot-net-in-mvvmcross - 但要知道,SQLite的,网上的NuGet包仍然在x64/x86平台/ ARM区别开的问题受苦 - 见How to distribute processor-specific WindowsStore assemblies with nuget:/