0%

Agenda

前言

MVCModel-Binding建立複雜物件(牽扯到複雜模型綁定.)

這篇會跟大家介紹MVC是如何把達成這個複雜的動作

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

IModelBinder(DefaultModelBinder)

DefaultModelBinder將Http請求傳來資料轉換為強型別物件,DefaultModelBinder是如何取得使用Model資料呢?

實現IValueProvider來處理。

ModelBinders

Read more »

Agenda

前言

上篇揭開MVC常用的過濾器如何被獲取呼叫跟基本介紹.

前幾篇有介紹ControllerDescriptor,ActionDescriptor兩個物件,今天會來細部探討他們裡面有哪些重要成員.

本篇會繼續分析呼叫Action方法邏輯和在過程中有用到重要物件跟動作.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

ControllerActionInvoker方法 重要InvokeAction方法

前面有說ControllerActionInvoker類別最重要的就是InvokeAction方法,因為主要透過他去呼叫ActionResult抽象類別ExecuteResult方法.

InvokeAction有兩個參數

Read more »

Agenda

前言

上篇揭開MVC常用的過濾器如何被獲取呼叫跟基本介紹.

前幾篇有介紹ControllerDescriptor,ActionDescriptor兩個物件,今天會來細部探討他們裡面有哪些重要成員.

本篇會繼續分析呼叫Action方法邏輯和在過程中有用到重要物件跟動作.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

ControllerActionInvoker方法 重要InvokeAction方法

前面有說ControllerActionInvoker類別最重要的就是InvokeAction方法,因為主要透過他去呼叫ActionResult抽象類別ExecuteResult方法.

InvokeAction有兩個參數

Read more »

Agenda

前言

上篇和大家介紹Filter去是如何取得且我們可以透過IOC容器註冊IFilterProvider來擴充取得Filter注入點.

ASP.NET MVCFilter,在執行目標前後彈性擴充額外操作(繼承ActionFilter並掛Attribute),這是一種典型的AOP設計模式

本篇會和大家繼續分享InvokeAction後續動作.

為什麼我們在Action方法和Controller類別放置一個繼承(AuthorizationFilter、ActionFilter、ResultFilter,ExceptionFilter)標籤(Attribute)對應介面(IAuthorizationFilter、IActionFilter、IResultFilter,IExceptionFilter),程式幫我們自動載入MVC生命週期中並執行?

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

揭密取得過濾器(Filter)機制AOP

AOP 是 OOP(物件導向)一個變化程式撰寫思想。(非取代OOP而是擴充)

Read more »

Agenda

前言

上篇和大家介紹Filter去是如何取得且我們可以透過IOC容器註冊IFilterProvider來擴充取得Filter注入點.

ASP.NET MVCFilter,在執行目標前後彈性擴充額外操作(繼承ActionFilter並掛Attribute),這是一種典型的AOP設計模式

本篇會和大家繼續分享InvokeAction後續動作.

為什麼我們在Action方法和Controller類別放置一個繼承(AuthorizationFilter、ActionFilter、ResultFilter,ExceptionFilter)標籤(Attribute)對應介面(IAuthorizationFilter、IActionFilter、IResultFilter,IExceptionFilter),程式幫我們自動載入MVC生命週期中並執行?

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

揭密取得過濾器(Filter)機制AOP

AOP 是 OOP(物件導向)一個變化程式撰寫思想。(非取代OOP而是擴充)

Read more »

Agenda

前言

前面介紹完 Asp.net MVC解析器和IOC容器之間關係

本篇要介紹Controller如何去呼叫使用的Action方法.

ExecuteCoreControllerBase類別提供給Controller來實作Hook方法.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

InvokeAction方法

之前說到MVC呼叫ControllerBase.Execute方法,其中這個方法做了幾件事情

  1. VerifyExecuteCalledOnce方法對於同步請求做一個防呆機制(不允許同一時間處理相同請求)
  2. Initialize初始化資料
  3. 呼叫ExecuteCore抽象方法(由Controller實現)
Read more »

Agenda

前言

前面介紹完 Asp.net MVC解析器和IOC容器之間關係

本篇要介紹Controller如何去呼叫使用的Action方法.

ExecuteCoreControllerBase類別提供給Controller來實作Hook方法.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

InvokeAction方法

之前說到MVC呼叫ControllerBase.Execute方法,其中這個方法做了幾件事情

  1. VerifyExecuteCalledOnce方法對於同步請求做一個防呆機制(不允許同一時間處理相同請求)
  2. Initialize初始化資料
  3. 呼叫ExecuteCore抽象方法(由Controller實現)
Read more »

Agenda

前言

前一篇介紹Asp.net MVC可透過DependencyResolver.SetResolver替換成IOC容器注入控制器物件.

要建立客製化的解析器可以實現IDependencyResolver介面並使用DependencyResolver.SetResolver替換DefaultDependencyResolver預設解析器

DependencyResolver,ControllerControllerFactory的關係如下圖

IOC_Asp.netMVC.png

本篇介紹DependencyResolverAsp.net MVC中有哪些實際的應用.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

DefaultControllerActivator

Read more »

Agenda

前言

前一篇介紹Asp.net MVC可透過DependencyResolver.SetResolver替換成IOC容器注入控制器物件.

要建立客製化的解析器可以實現IDependencyResolver介面並使用DependencyResolver.SetResolver替換DefaultDependencyResolver預設解析器

DependencyResolver,ControllerControllerFactory的關係如下圖

IOC_Asp.netMVC.png

本篇介紹DependencyResolverAsp.net MVC中有哪些實際的應用.

我有做一個可以針對於Asp.net MVC Debugger的專案,只要下中斷點就可輕易進入Asp.net MVC原始碼.

DefaultControllerActivator

Read more »

Agenda

前言

IOC依賴反轉是oop重要程式設計思想。

Ioc—Inversion of Control 控制反轉

控制反轉是一個設計思想 ,把對於某個物件的控制權移轉給第三方容器.

詳細資訊可以查看小弟另一篇文章 IOC(控制反轉),DI(依賴注入) 深入淺出~~

有沒有人會很好奇說為什麼只需要透過DependencyResolver.SetResolver方法我就可以直接使用AutoFac或其他IOC容器?

1
2
3
4
//....
// 建立相依解析器
IContainer container = new builder.Build();
DependencyResolver.SetResolver(container);

今天跟大家分享Asp.net MVC利用什麼設計技巧,讓外部IOC容器可以很方便融入系統中.

Read more »