クライアント側で JSON.net を使用して、REST-Webservice と通信する C#/MVC 4 で Web サービス クライアントを作成しています。これまでのところすべて正常に動作していますが、アーキテクチャを改善して、よりスムーズに処理できるようにしたいと考えています。
コネクタ クラスを作成し、次のように初期化します。
var conn = new MyConnector("admin", "admin", "http://localhost:9000");
次に、次のような POCO クラスがあります。
public class MyRecord
{
[JsonProperty("record_id")]
public string RecordId;
...
Web サービスに PUT 要求を実行して変更を保存しています。次のようになります。
var updated = conn.UpdateRecord("MyRecordId", new NameValueCollection{{"title","new_title"}});
私がやりたいことは、ActiveRecord のように実装することです。
var myRecord = conn.GetRecord("myRecordId);
myRecord.title = "Foo";
myRecord.save();
つまり、MyRecord クラスは接続ハンドラを認識する必要があります。MyRecord は基本的に単純なオブジェクトであるため、これは私には悪い設計に思えます。別の選択肢は、接続ハンドラを保存メソッドに渡すことですが、それも臭いです。
それを改善するための提案はありますか?