MvvmCross Core 程序集中的设置?

Posted

技术标签:

【中文标题】MvvmCross Core 程序集中的设置?【英文标题】:Settings in MvvmCross Core assembly? 【发布时间】:2013-05-10 18:36:24 【问题描述】:

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

谢谢!

【问题讨论】:

【参考方案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-net,请参阅 https://speakerdeck.com/cirrious/using-sqlite-dot-net-in-mvvmcross - 但请注意,SQLite-net 的 nuget 包仍然存在关于 x64/x86/ARM 差异的未解决问题 - 请参阅 How to distribute processor-specific WindowsStore assemblies with nuget :/

【讨论】:

以上是关于MvvmCross Core 程序集中的设置?的主要内容,如果未能解决你的问题,请参考以下文章

如何用MVVMCross 6.2设置标题标题?

TestFlight 设置 mvvmcross

MvvmCross 4 和 Xamarin.iOS -> 使用 Storyboard 时如何从 Core 加载视图控制器?

MvvmCross 6 中的子类 UIWindow

MvvmCross - '无法加载类型 Sequence.Plugins.InfiniteScroll.PluginLoader 的插件程序集'

MvvmCross 升级到 8.x 后,应用程序卡在 SplashScreen