本章小結
當目標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++音頻/視頻技術開發與實戰
From:http://tw.wingwit.com/Article/program/net/201311/16063.html