MVC3如何使用Castle进行依赖注入Dependency Injection

依赖注入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);进行注册。

详见:http://www.cnblogs.com/zhuqil/archive/2010/07/27/you-have-to-knowextensibility-points-in-asp-net-mvc-controller-factory.html

原文地址:https://www.cnblogs.com/mmnyjq/p/2703692.html