0

Azure (MVC4 WebApi) で REST Web サービスを呼び出す WP7 プロジェクトがあります。

私の WP7 プロジェクトには、JSON にシリアル化してから Web サービスに送信するモデルがあります。

Web サービスは、WP7 から送信されたデータを逆シリアル化し、モデルを再度インスタンス化してから Azure Table Storage に保存します。

プロジェクト間でモデル クラスを共有するにはどうすればよいですか? 現在、cs ファイルをコピーしているだけで、モデルに変更を加える場合は両方のセットを更新する必要があります。シンプルなクラス ライブラリ プロジェクトを両方のプロジェクトから参照できるようにしたいと思っていましたが、WP7 ではそれを処理できませんでした。

私は何をすべきか?

ありがとう!

4

1 に答える 1

2

この問題には多くの解決策があります。

  • T4 テンプレートを使用してエンティティを読み取り、テーブル ストレージの詳細 (TableStorageEntity など) を参照せずにオブジェクトのプロパティのみを含む WP7 プロジェクトのクラスを生成できます: http://weblogs.asp.net/cibrax/archive /2009/03/11/code-generation-with-t4-an-entities-to-dto-example.aspx

  • エンティティを 2 つのファイルに分割できます。1 つは TableStorageEntity などの TableStorage 固有のもので、もう 1 つはエンティティのプロパティのみを含むファイルです (これには部分クラスを使用します)。次に、WP7 プロジェクトのプロパティのみを含むファイルをリンクとして追加できます。

  • DTO (またはあなたがそれを呼び出すもの) クラスを手動で作成し、AutoMapper のようなものを使用して DTO と TableStorage エンティティ間をマップします。DTO をポータブル ライブラリに格納して、あらゆる種類のプロジェクトで使用できるようにします。私の意見では、エンティティを「外の世界」に完全に公開したくないので、これが最善の解決策です。例として、ユーザーのリストがあります。パスワード、ハッシュ、その他の機密情報を含むすべてのフィールドを返したくないでしょう。外部に公開したい情報のみを含む別のクラスを用意することをお勧めします。

于 2012-08-10T06:05:24.253 に答える