在sqlite-net和servicestack ormlite之间共享代码

本文关键字:之间 共享 代码 ormlite servicestack sqlite-net | 更新日期: 2023-09-27 18:36:40

我正在使用sqlite-net在我的MonoDroid移动应用程序上存储数据。我也想将此数据与服务器端服务同步。

是否可以在sqlite-net和Servicestacks ormlite之间共享我的实体对象的代码?

我可以看到两者之间的主要区别是在对象的类顶部声明"using namespace"语句。是否可以检测平台并基于平台设置使用语句?

另一个区别是引用服务堆栈的不同 dll,所以我想在移动应用程序上,如果有对服务堆栈命名空间的引用,它就不会编译......

实现此代码共享的好方法是什么?

在sqlite-net和servicestack ormlite之间共享代码

它们是 2 个不同的程序集,使用物理上不同的属性类型,因此为了链接它们,我将使用 2 个 VS.NET/MonoDevelop 项目解决方案文件,其中包含每个项目中定义的自定义生成符号,以便您可以执行以下操作:

#if MONODROID
   using SQLite;
#else
   using ServiceStack.OrmLite;
#endif

为了最大程度地减少影响,您还可以将尽可能多的平台差异保留到特定平台文件中,并在每个解决方案中包含适当的差异。

您可以在ServiceStack.Text JSON,JSV和CSV Text Serializers中看到支持多个构建环境的示例,该示例具有用于.NET,MonoTouch,Silverlight 4.0/5.0,Windows Phone和XBox环境的不同.sln/.proj文件。