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 4 和 Xamarin.iOS -> 使用 Storyboard 时如何从 Core 加载视图控制器?
MvvmCross - '无法加载类型 Sequence.Plugins.InfiniteScroll.PluginLoader 的插件程序集'