一、前言 DependencyResolver是MVC中一個重要的組件,從名字可以看出,它負責依賴對象的解析,可以說它是MVC框架內部使用的一個IOC容 器。MVC內部很多對象的創建都是通過它完成的,或許我們平時沒有直接用到它,但是如果你在使用unity、autofac,或者在看一些開源項目時,總 ...
一、前言
DependencyResolver是MVC中一個重要的組件,從名字可以看出,它負責依賴對象的解析,可以說它是MVC框架內部使用的一個IOC容 器。MVC內部很多對象的創建都是通過它完成的,或許我們平時沒有直接用到它,但是如果你在使用unity、autofac,或者在看一些開源項目時,總 會看到它的身影。接下來就讓我們看一下這個組件是如何工作的。
二、通過Controller的激活理解DependencyResolver的工作過程
這裡先插一個題外話,經常會有面試問:asp.net 幾個核心對象是什麼?一般人都會回答:Server、Request、Response、Session、Cookie這些。但我的回答會是 HttpApplication、HttpHandler和HttpModule,這才是管道模型中的核心類型,整個asp.net的處理流程和可擴展性 也都是建立在這幾個對象上的。
回到主題,asp.net請求都是交給HttpHandler處理的,對於MVC來說,是交給一個MvcHandler,它負責激活Controller,如果你不知道為什麼,請看這裡。在這裡我們直接定位到MvcHandler的PR方法: