1

MonoDroid モバイル アプリケーションにデータを保存するためにsqlite-netを使用しています。このデータをサーバー側のサービスとも同期したいと考えています。

私のエンティティ オブジェクトのコードを sqlite-net と Servicestacks ormlite の間で共有することはできますか?

私が見ることができる 2 つの主な違いは、オブジェクトのクラスの先頭にある "using namespace" ステートメントを宣言していることです。プラットフォームを検出し、プラットフォームに基づいて using ステートメントを設定することは可能ですか?

もう 1 つの違いは、servicestack のさまざまな dll を参照することです。そのため、モバイル アプリでは、servicestack 名前空間への参照があるとコンパイルされないと思います...

このコードを共有するには、どのような方法がよいでしょうか?

4

1 に答える 1

1

これらは物理的に異なる属性タイプを使用する 2 つの異なるアセンブリであるため、それらをリンクするには、各プロジェクトでカスタム ビルド シンボルが定義された 2 つの VS.NET/MonoDevelop プロジェクト ソリューション ファイルを使用して、次のようなことができるようにします。

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

影響を最小限に抑えるために、プラットフォームの違いをできるだけ多く特定のプラットフォーム ファイルに保持し、各ソリューションに適切なものを含めることもできます。

.NET、MonoTouch、Silverlight 4.0/5.0、Windows Phone、および XBox 環境用に異なる .sln/.proj ファイルを持つServiceStack.Text JSON、JSV & CSV テキスト シリアライザーで複数のビルド環境をサポートする例を確認できます。

于 2012-06-11T16:37:32.943 に答える