Xamarin PCL库和Sqlite数据存储
本文关键字:数据 存储 Sqlite 库和 PCL Xamarin | 更新日期: 2023-09-27 17:51:16
我正在开发一个跨平台应用程序与Xamarin Android, iOS和Windows Phone。我正在创建一个PCL库,其中包含所有业务逻辑,包括对REST API的调用。现在这似乎工作得很好,然而,我需要在一个持久的空间存储信息位,如API认证密钥等,我想我也可以使用Sqlite,它似乎在所有三个平台上都支持。
我遇到的问题是System.Data
和Mono.Data.Sqlite
似乎在PCL项目的上下文中不可用。
即使我的PCL库不能或没有与所需的程序集链接,我至少应该能够在我的PCL库中使用引用(通过using
),对吗?我的意思是,我应该能够让应用程序负责创建数据库连接,然后使用依赖注入将该连接注入到我的库中。但似乎我甚至不能在我的代码中引用任何System.Data
和Mono.Data.Sqlite
。
我如何在一个PCL库与Xamarin Android, iOS和Windows Phone抽象我的数据层?
[1] http://developer.xamarin.com/guides/ios/advanced_topics/system.data/
我推荐使用SQLite.Net.Async。然后,您可以使用DI将平台实现(ISQLitePlatform)注入PCL端。如果您不想使用DI,另一个选择是使用SQLite-Net PCL。
我会考虑使用反转控制技术,所以我有一个接口或抽象类,是PCL兼容,然后这个类的平台特定的实现。在应用程序启动时,将启动正确的平台特定对象,然后将其传递到PCL兼容库中。