示例/用例 - 构建自己的ControllerFactory的案例?

时间:2009-06-11 19:41:29

标签: asp.net-mvc

出于兴趣:在ASP.net MVC中,您可以滚动自己的ControllerFactory。我只是想知道你为什么要那样做?我看到提到的依赖注入有意义推出自己的ControllerFactory,但是我又不知道为什么我要在控制器上使用DI。

交换模型非常有意义,交换视图也有一些明显的用途,但我不确定我是否能想到任何用于交换控制器的用例,这不会导致架构噩梦。 / p>

任何例子?

2 个答案:

答案 0 :(得分:3)

我们这样做有两个原因:

  1. 依赖注入。这就是我们如何为单元测试控制器更换模型。控制器有一个服务接口引用,从中获取所需的模型类型。
  2. 覆盖默认的“ControllerName + Controller”约定。对于最终用户看到的每个控制器,我们实际上没有特定的控制器类型。在某些情况下,我们动态生成控制器控制器工厂处理这些情况。
  3. 那就是说,这只是几行代码;大多数实际工作都是由框架中继承的控制器工厂完成的。所以你的问题的答案部分是“不多。”

答案 1 :(得分:1)

我克雷格回答了你的问题中的“用例”部分并且他是正确的,创建自己的控制器工厂非常容易。

以下是我使用Ninject作为Ioc容器的示例。也许它会帮助别人。我也希望它能回答你问题的“例子”部分。

http://www.craftyfella.com/2010/02/creating-aspnet-mvc-2-controller.html