Xamarin PCL库和Sqlite数据存储

时间:2015-06-01 06:44:14

标签: c# database sqlite xamarin cross-platform

我正在使用适用于Android,iOS和Windows Phone的Xamarin开发跨平台应用程序。我正在创建一个包含所有业务逻辑的PCL库,包括对我的REST API的调用。现在这看起来工作正常,但是,我需要在持久空间中存储一些信息,例如API身份验证密钥等,我想我也可以使用Sqlite,它似乎在所有三个平台上都受支持

我遇到的问题是System.DataMono.Data.Sqlite似乎在PCL项目的背景下无法使用。

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

如何使用适用于Android,iOS和Windows Phone的Xamarin在PCL库中抽象数据层?

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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