0
我正在編寫一個Web服務客戶端,使用C#/ MVC 4與REST-Webservice進行通信,在客戶端使用JSON.net。 目前爲止一切正常,但我想改進架構以使處理更加流暢。爲Webservice客戶端實現ActiveRecord
我寫了一個連接器類,並初始化它是這樣的:
var conn = new MyConnector("admin", "admin", "http://localhost:9000");
然後,我有一個POCO類是這樣的:
public class MyRecord
{
[JsonProperty("record_id")]
public string RecordId;
...
我通過執行PUT請求保存更改網絡服務。它看起來像:
var updated = conn.UpdateRecord("MyRecordId", new NameValueCollection{{"title","new_title"}});
我想要做的就是實現它更像ActiveRecord的:
var myRecord = conn.GetRecord("myRecordId);
myRecord.title = "Foo";
myRecord.save();
這意味着MyRecord級必須知道連接處理器的。這對我來說似乎很糟糕,因爲MyRecord基本上是一個普通的對象。另一種選擇是將連接處理程序傳遞給保存方法,但也有異味。
任何改善它的建議?
你說得對 - 我用了這麼數據庫訪問Repository模式很遠,但可能它是將其擴展到Web服務的最佳解決方案。謝謝! – schneck 2012-07-23 14:19:18