依赖注入Dependency Injection 的改进
ASP.NET MVC3 提供了更好的 DI 和 IoC 支持,在下面的地方支持 DI:
控制器 (registering and injecting controller factories, injecting controllers).
MVC3通过Global.asaxs Application_Start()方法将controller注入到Castle中。
View Code
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); Log4NetUtility.Run(); CastleUtility.Run(); }
Mvc不会自己创建Controller。是
通过DefaultControllerFactory类的Activator.CreateInstance来初始化控制器。创建一个IController(参考mvc-DefaultControllerFactory篇)。最后通过
ControllerBuilder.Current.SetControllerFactory(controllerFactory);进行注册。