前言
IOC
依賴反轉是oop
重要程式設計思想。(Ioc—Inversion of Control
控制反轉)
詳細資訊可以查看小弟另一篇文章 IOC(控制反轉),DI(依賴注入) 深入淺出~~
有沒有人會很好奇說為什麼只需要透過DependencyResolver.SetResolver
方法我就可以直接使用AutoFac
或其他IOC容器?
今天跟大家分享Asp.net MVC
利用什麼設計技巧,讓外部IOC
容器可以很方便融入系統中.
IOC
依賴反轉是oop
重要程式設計思想。(Ioc—Inversion of Control
控制反轉)
詳細資訊可以查看小弟另一篇文章 IOC(控制反轉),DI(依賴注入) 深入淺出~~
有沒有人會很好奇說為什麼只需要透過DependencyResolver.SetResolver
方法我就可以直接使用AutoFac
或其他IOC容器?
今天跟大家分享Asp.net MVC
利用什麼設計技巧,讓外部IOC
容器可以很方便融入系統中.
上篇得知MVC預設透過DefaultControllerFactory
反射方式動態建立Controller
物件
本篇會分享我們常用到Controller
基礎類別和相關物件.
我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.
此篇同步發布在筆者Blog [Day12] 談談Controller幾個重要成員
前篇介紹MVC使用HttpHandler
是MvcHandler
透過並MvcRouteHandler
物件來返回.
我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.
大家介紹如何取得Controller
執行物件
前一篇介紹路由封裝了Http請求路徑資訊可以讓我們找到相對應的Action
和Controller
並呼叫執行外,也可透過MapPageRoute
來將請求教給.aspx
實體檔案來處理請求.
Route
甚至可以讓我們自己客製化處理HttpHandler
在Route中建立處理客製化HttpHandler可謂很有彈性
本篇介紹Route
物件建立MvcRouteHandler
物件且如何取到IHttpHandler
.
現在開始進入Asp.net MVC原始碼世界,我們從路由開始切入一步一步進入MVC核心.
我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.
此篇同步發布在筆者Blog [Day09] 進入MVC原始碼世界 Route & RouteTable 原始碼解析
前面幾篇文章已經詳細分享解說Asp.net
如何透過HttpApplication
找到IHttpHandler
並執行呼叫介面方法.
今天要跟大家分享上圖的最後一塊拼圖揭密並探索Asp.net MVC
使用的IHttpHandler
.
此篇同步發布在筆者Blog [Day08] 揭密Mvc使用IHttpHandler by UrlRoutingModule-4.0
前面和大家分享StepManager
是如何建立管道和依序呼叫IHttpModule
註冊事件
查看原始碼好站 Reference Source
此文的程式碼比較多我會在原始碼上邊上說明相對應編號方便大家觀看
今天跟大家分享HttpAppliaction
是如何找到要執行的IHttpHandler
物件.
此篇同步發布在筆者Blog [Day07] Asp.Net重要物件HttpApplication(三) 取得執行的IHttpHandler
前面有提到InitInternal
方法,是如何載入註冊HttpModule
並呼叫Init
方法,經典模式和管道模式比較.
查看原始碼好站 Reference Source
此文的程式碼比較多我會在原始碼上邊上說明相對應編號方便大家觀看
今天跟大家介紹StepManager
是如何建立管道和依序呼叫IHttpModule
註冊事件
上一篇文章分享HttpApplicationFactory.GetApplicationInstance
方法返回一個HttpApplication
給HttpRuntime
來呼叫使用.
今天開始介紹HttpApplication
這個很重要的類別,它可謂是我們Asp.net
中很複雜但重要的類別
Global.cs
是繼承HttpApplication
類別,但為什麼需要繼承這個類別呢? 讓我們繼續看下去.
附上Asp.net
執行請求流程圖.
在前一篇我們說到HttpRunTime
會透過GetApplicationInstance
來取得一個IHttpHandler
對象.
今天跟著原始碼來了解到底回傳一個什麼IHttpHandler
物件給HttpRunTime
使用.
查看原始碼好站 Reference Source