【发布时间】:2011-05-13 15:10:05
【问题描述】:
我有一个在 Session 中存储对象的 MVC 控制器。不同的控制器操作从 Session 中检索对象,对其进行处理,然后将其保存回来。
我想使用 Unity,以便控制器只处理一个接口,但我不确定如何实现这一点(我对整个依赖注入这件事还很陌生)。下面是一些示例代码:
public class MyController : Controller
{
[HttpGet]
public ActionResult Index()
{
var state = new State();
// do stuff with state
Session[Key] = state;
return View();
}
[HttpPost]
public ActionResult Change()
{
var state = Session[Key] as State;
// do stuff with state
Session[Key] = state;
return View();
}
}
所以基本上我想使用IState 而不是State。但是 Unity 在哪里/如何注入具体实现?在构造函数中似乎不可能发生,因为我只需要在Index() 操作中实例化一个新对象。有没有什么神奇的方法可以向 Index() 添加 Unity 可以使用的参数?
【问题讨论】:
标签: asp.net-mvc-3 dependency-injection unity-container