我正在使用sqlite-net在我的MonoDroid移动应用程序上存储数据。我也希望将这些数据与服务器端服务同步。
是否可以在sqlite-net和Servicestacks ormlite之间共享我的Entity对象的代码?
我可以看到的两者之间的主要区别是在对象的类顶部声明“using namespace”语句。是否可以检测平台并根据平台设置使用语句?
另一个区别是引用servicestack的不同dll所以我想在移动应用程序中如果有对servicestack命名空间的引用则不会编译...
实现此代码共享的好方法是什么?
答案 0 :(得分:1)
它们是两个使用物理上不同属性类型的不同程序集,因此为了链接它们,我将使用2个VS.NET/MonoDevelop项目解决方案文件,并在每个项目中定义自定义构建符号,以便您可以执行以下操作: / p>
#if MONODROID
using SQLite;
#else
using ServiceStack.OrmLite;
#endif
为了最大限度地减少影响,您还可以将尽可能多的平台差异保存到特定平台文件中,并在每个解决方案中包含适当的平台文件。
您可以在ServiceStack.Text JSON,JSV&中找到支持多个构建环境的示例。 CSV文本序列化程序,具有.NET, MonoTouch, Silverlight 4.0/5.0, Windows Phone and XBox environments的不同.sln / .proj文件。