本章小结
当目标Controller的名称通过URL路由被解析出来之后ASPNET MVC利用注册的ControllerFactory根据该名称实现对目标Controller的激活除了完成对Controller的激活之外ControllerFactory还负责对Controller的释放工作以及获取用于控制会话状态行为的SessionStateBehavior枚举ControllerFactory的注册通过ControllerBuilder来完成
ASPNET MVC默认使用的ControllerFactory类型为DefaultControllerFactory它在对Controller类型进行解析的时候对所有Controller类型采用了基于文件的缓存以提升性能在DefaultControllerFactory内部它将解析得到的Controller类型递交给ControllerActivator对象对Controller实施最终的激活默认使用DefaultControllerActivator内部利用了当前注册的DepedencyResolver来提供具体的Controller对象如果没有对DepedencyResolver进行显式注册默认提供的DepedencyResolver将采用对提供类型的反射方式创建相应的实例
将IoC应用到Controller的激活过程中具有重要的意义可以极大地降低Controller和其他组件的依赖关系通过对Controller激活流程的分析我们提供了三种实现方法即自定义ControllerFactoryControllerActivator和DepedencyResolver
返回目录ASPNET MVC 框架揭秘
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
Java程序性能优化让你的Java程序更快更稳定
Visual C++音频/视频技术开发与实战