【发布时间】:2012-07-23 13:42:31
【问题描述】:
我正在使用 C#/MVC 4 编写一个 Web 服务客户端,它与 REST-Web 服务通信,在客户端使用 JSON.net。 到目前为止一切正常,但我想改进架构以使处理更加流畅。
我写了一个连接器类并像这样初始化它:
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 基本上是一个普通的对象。另一种选择是将连接处理程序传递给保存方法,但这也有异味。
有什么改进的建议吗?
【问题讨论】:
标签: c# asp.net-mvc oop json.net