3

问题标题可能不清楚,但我想做的是这样的:

这就是我如何分层我的应用程序

应用程序域应用程序服务应用程序Web

我想要的是,如果我请求类似的东西/api/OrderProcessor/GetAllOrder,它将GetAllOrderApp.Services.OrderProcessorService.

该方法将返回一个IList<Order>,我希望它根据某种格式(我实际上使用 ExtJS)序列化为 JSON,可能类似于:

{ 
  success: true,
  totalCount: 10,
  list: [ { ... }, { ... } ]
}

我可以继续将服务作为控制器,但我不希望服务层被表示材料污染。

我该如何制作这样的包装控制器?

我不想在 Service 类本身上附加任何属性,如果我可以使用 IoC 配置它可能会很好,可能稍后我希望输出是 XML 或者可能使用 DTO 类而不是原始域类。

任何想法?

4

2 回答 2

2

听起来您正在尝试制作RESTful 服务

使用 RESTful 服务,/api/OrderProcessor/GetAllOrdersURI 将返回您的 JSON 对象。

如果是这种情况,我会使用 WCF 而不是 ASP.NET MVC。

要开始使用 WCF、REST 和 JSON,请查看 Codeplex 上的WCF REST Starter Kit Preview 2。在Ben Dewey 找到的这篇文中,有一个从 WCF 服务返回 JSON 的快速示例。

祝你好运!

于 2009-06-25T17:32:23.137 回答
0

您可以使用 PostSharp 的 OnMethodInvocationAspect 之类的东西来拦截对控制器方法的每次调用,并充当指定代理对象上类似命名方法的中继...

于 2009-10-22T01:20:02.653 回答