Xamarin PCL库和Sqlite数据存储

本文关键字:数据 存储 Sqlite 库和 PCL Xamarin | 更新日期: 2023-09-27 17:51:16

我正在开发一个跨平台应用程序与Xamarin Android, iOS和Windows Phone。我正在创建一个PCL库,其中包含所有业务逻辑,包括对REST API的调用。现在这似乎工作得很好,然而,我需要在一个持久的空间存储信息位,如API认证密钥等,我想我也可以使用Sqlite,它似乎在所有三个平台上都支持。

我遇到的问题是System.DataMono.Data.Sqlite似乎在PCL项目的上下文中不可用。

即使我的PCL库不能或没有与所需的程序集链接,我至少应该能够在我的PCL库中使用引用(通过using),对吗?我的意思是,我应该能够让应用程序负责创建数据库连接,然后使用依赖注入将该连接注入到我的库中。但似乎我甚至不能在我的代码中引用任何System.DataMono.Data.Sqlite

我如何在一个PCL库与Xamarin Android, iOS和Windows Phone抽象我的数据层?

[1] http://developer.xamarin.com/guides/ios/advanced_topics/system.data/

Xamarin PCL库和Sqlite数据存储

我推荐使用SQLite.Net.Async。然后,您可以使用DI将平台实现(ISQLitePlatform)注入PCL端。如果您不想使用DI,另一个选择是使用SQLite-Net PCL。

我会考虑使用反转控制技术,所以我有一个接口或抽象类,是PCL兼容,然后这个类的平台特定的实现。在应用程序启动时,将启动正确的平台特定对象,然后将其传递到PCL兼容库中。