【问题标题】:How to use Community SQLite plugin in MVVMCross如何在 MVVMCross 中使用 Community SQLite 插件
【发布时间】:2023-03-21 09:44:01
【问题描述】:

在我的应用程序中,我使用的是旧的 SQLite 插件。 从 MVVMCross 3.0.14 开始,此版本已被弃用,建议使用 Community.Sqlite 插件。

社区插件是通过 Nuget 添加的。

在没有引导程序的情况下尝试使用插件时,在运行时出现错误:

创建时无法解析类型为 ISQLiteConnectionFactory 的参数 connectionFactory 的参数...

当尝试将插件与引导程序一起使用时,也在运行时出现错误:

没有为 Cirrious.MvvmCross.Community.Plugins.Sqlite 类型注册插件

这个插件应该怎么用?

-编辑- 这是我的引导程序代码:

using Cirrious.MvvmCross.Community.Plugins.Sqlite;
public class SqlitePluginBootstrap : MvxPluginBootstrapAction<PluginLoader>
{
}

【问题讨论】:

  • 对我来说,只需将折旧的插件替换为社区等效插件(3.0.14-beta2)即可。请发布您的 SQLite 引导程序的代码。
  • 我使用的是 v3.0.13,Nuget 不提供任何预发布更新。我会添加代码。

标签: sqlite xamarin.ios mvvmcross


【解决方案1】:

好的,Nuget 添加了对可移植库的引用。我添加了对 Sqlite.Touch 库的引用,然后更改了我的引导程序:

using Cirrious.MvvmCross.Community.Plugins.Sqlite;
using Cirrious.MvvmCross.Community.Plugins.Sqlite.Touch;
public class SqlitePluginBootstrap : MvxLoaderPluginBootstrapAction<PluginLoader, Plugin>
{
}

这解决了我的“插件未注册”错误。

【讨论】:

  • 我在使用 MvvmCross > 3.5 时遇到了同样的问题,我需要使用 Community.Sqlite 插件,但是当为 nugget 安装时,我有这个错误“类型或命名空间社区”在命名空间 Cirrious 中不存在。 MvvmCross'
【解决方案2】:

已确认 - 我遇到了同样的问题。 正如 Jacco 所指出的,Nuget 下载了正确的东西,但只添加了一个引用。

它不会添加对 Cirrious.MvvmCross.Community.Plugins.Sqlite.Touch.dll 的引用,也不会自动为您放入引导程序。

我在 MvxLoaderPluginBootstrapAction 的引导程序中有一个额外的 using 语句。这是完整的代码:

using Cirrious.CrossCore.Plugins;
using Cirrious.MvvmCross.Community.Plugins.Sqlite;
using Cirrious.MvvmCross.Community.Plugins.Sqlite.Touch;
public class SqlitePluginBootstrap : MvxLoaderPluginBootstrapAction<PluginLoader, Plugin>
{
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 1970-01-01
    相关资源
    最近更新 更多