MVC3 中使用Unity实现依赖注入
前言:前段時間一直在研究依賴注入,不過不是在MVC框架中使用,今天突然想到在MVC中使用Unity實現依賴注入,一時慌了,不知道從何下手,接著就是網上不停的找資料,下面我把我找到的資料分享下,也把我的想法說下,如果大神們有什么更好的實現方式,請多多指教啊。
? 什么是Unity? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Unity是一個輕量級的可擴展的依賴注入容器,支持構造函數,屬性和方法調用注入。Unity可以處理那些從事基于組件的軟件工程的開發人員所面對的問題。構建一個成功應用程序的關鍵是實現非常松散的耦合設計。松散耦合的應用程序更靈活,更易于維護。這樣的程序也更容易在開發期間進行測試。你可以模擬對象,具有較強的具體依賴關系的墊片(輕量級模擬實現),如數據庫連接,網絡連接,ERP連接,和豐富的用戶界面組件。例如,處理客戶信息的對象可能依賴于其他對象訪問的數據存儲,驗證信息,并檢查該用戶是否被授權執行更新。依賴注入技術,可確保客戶類正確實例化和填充所有這些對象,尤其是在依賴可能是抽象的 。
如何獲取Unity? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
你可以下載一個Nuget安裝,通過Nuget獲取。
MVC中如何使用Unity? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
在MVC中使用Unity需要實現兩個接口:IDependencyResolver和IControllerActivator.
1、需要實現IDependencyResolver接口的GetServices和GetService,分別是注冊單個會這多個注冊服務。IDependencyResolver接口的實現應該委托給底層的依賴注入容器提供注冊服務請求的類型。當有沒有注冊的服務請求的類型,ASP.NET MVC框架預計這個接口的實現返回GetService為空,并從GetServices返回空集合。
下圖展示IDependencyResolver接口的實現:
?
實現這兩個方法,是為了返回我們需要的Service或者object.
ASP.NET MVC 3已經推出了一個新的接口IControllerActivator,讓您激活自定義的行為控制器,并且可以使用依賴注入。創建一個派生自IControllerActivator 接口的一個自定義的控制器。
做好這兩個類之后,早Global.cs里面配置一下。
接著在Application_Start里面寫入
具體的絲路是:首先通過GetUnityContainer方法獲取container,并通過SetResolver來獲取自己的container實例。
在Controller只要添加一個[Dependency]特性,就會實現注入。
?
?
轉載于:https://www.cnblogs.com/xuguoming/articles/3196051.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的MVC3 中使用Unity实现依赖注入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载[POJ题型分类]
- 下一篇: ms2005 SQL Server设置改