日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

快速入门系列--MVC--03控制器和IOC应用

發布時間:2025/4/16 c/c++ 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速入门系列--MVC--03控制器和IOC应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? Asp.net MVC也接觸好久了,但由于自己一直主要負責后臺,尤其是數據庫方面的工作對于該框架并沒有一個很好的了解,尤其是蔣金楠大師的ASP.NET MVC4框架剖析一書都買了2年多了,真正認真看過并實踐過的也就第一章而已。最開始的時候還老認為這本書不好,又厚又晦澀,不容易堅持讀完,現在回想起來都覺得羞愧。標準的徒弟不好怪師傅的心態,當然學習的確需要一個過程,從淺入深會越來越喜歡。到目前為止,我最喜歡的書籍系列依然是入門經典系列,內容簡單有習題,方便記憶與實踐。最近有一段學習JAVA的過程,讓我慢慢開始學著閱讀源碼,這才知道蔣大師是源碼級別的剖析,并且比很多相關書籍好的地方時,基本上每一個復雜的知識點他都會根據自己的理解創建一個相對簡單的小例子促進讀者的理解,真心是棒棒噠。閑扯了半天,進入今天的正題—ASP.NET MVC與IOC的相關實踐。

????首先由于IOC是在Controller這章介紹,所以先來說說Controller方面的相關知識。ASP.NET MVC框架的主要的處理過程就是通過解析URL信息獲取Controller的名稱和Action的名稱,同時通過Model的綁定機制將請求上下文所包含的請求數據轉化為Action方法調用的參數列表。這兒想提及的一點就是關于Controller的執行是同步的還是異步的,實際上默認情況下是異步的,其中DisableAsyncSupport屬性負責控制,默認為false,我之前為這塊也困惑了很久。接下來提及的是ControllerFactory類中的SessionStateBehavior屬性,有Default、Required、ReadOnly、Disable,到目前為止,我對于該框架中的會話仍然不是特別的清楚,之后弄清后回過來修改。

接下來用簡圖表示Controller激活的基本過程,請求到來后,HttpModule進行攔截,通過MvcRouteHandler調用GetHttpHandler方法找到對應HttpHandler處理類,即MvcHandler。然后調用該類的異步處理方法,注意這兒會始終使用異步處理方式,該方法中首先通過ControllerBuilder對象獲取當前的ControllerFactory,然后通過控制器的名稱找到并創建該控制器,讓后調用[Begin]Execute執行,可以異步也可以是同步執行,之前有提及。Controller在執行完后,ControllerFactory會調用Release將其釋放。

再則說說Controller類型的緩存,為了提高解析Controller的效率,框架對其進行了緩存,是一種XML文件形式的緩存,可以%Windir%\Micrisoft.NET的相關子目錄中找到,與AreaRegistration的緩存方式類似,需要時將該XML文件反序列化為一個List<Type>對象即可。

最后介紹,本文的重點Controller中IOC的應用。在此之前,需要介紹一下應用IOC的原因,在實際的開發過程中,用戶的請求會直接發送到Controller,這是如果是針對某項業務功能的調用,Controller會直接調用Model(也可以是外部的Service),當需要呈現數據時,回見Model中獲得數據轉化為ViewModel的形式用于呈現。但不管怎樣,Controller都會與業務層的Model(領域模型)產生直接的依賴,不復合程序設計中依賴倒置的原則,因此引入IOC,降低耦合性。

????在IOC的應用上,我們選擇框架默認的DependencyResolver組件與Unity組件的組合,當前Unity組件已從codeplex搬到了github。有一個UnityMvc包原生支持IOC都不需要代碼,直接配置即可,但由于版本兼容原因,附實現的代碼如下,相關內容比較簡單,就不介紹了。這兒的重點是相關整合方案有很多,這種是被使用最多的,當然蔣老師介紹的與Ninject的組合也很好。

?View Code

?

參考:

[1]蔣金楠. ASP.NET MVC4框架揭秘[M]. 上海:電子工業出版社, 2012. 86-122

轉載于:https://www.cnblogs.com/zhangyubao/p/7008745.html

總結

以上是生活随笔為你收集整理的快速入门系列--MVC--03控制器和IOC应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。