1

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

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

我可以看到两者之间的主要区别是在对象的类顶部声明“使用命名空间”语句。是否可以检测平台并根据平台设置使用语句?

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

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

4

1 回答 1

1

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

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

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

您可以在ServiceStack.Text JSON、JSV 和 CSV 文本序列化程序中看到一个支持多个构建环境的示例,它具有不同的 .sln/.proj 文件,适用于.NET、MonoTouch、Silverlight 4.0/5.0、Windows Phone 和 XBox 环境

于 2012-06-11T16:37:32.943 回答