Unity 2.x依賴注入(控制反轉)IOC,對于沒有大項目經驗的童鞋來說,這些都是陌生的名詞,甚至有些同學還停留在拉控件的階段。
我們采用的是構造函數注入,運作時注入。
這塊的概念可以算算是本系統最模糊的,大家應該好好了解下,部落格園一位大蝦的
這裡我不再詳說了。
貼出代碼,告訴大家怎麼做就好了。
在App.Admin建立Library放進去,以後我們要用到的類庫都放到這裡來,除非說明,引用的類庫都是開源的。
App.Core引用Microsoft.Practices.Unity.dll , System.Web.Mvc, System.Web,3個類庫和4.BLL,App.IBLL,App.DAL,App.IDAL 4個類庫
添加以下2個類

UnityDependencyResolver.cs
在系統開始運作時候我們就把構造函數注入。是以我們要在Global檔案寫入代碼

Global.asax.cs
好了,我們已經把
注入到系統了
由于EF生成的實體模型是擁有事務狀态的,我們一直希望把開銷減少到最低,我們要重新構造SysSample的類
在App.Models建立檔案夾Sys,如非特别說明,Sys代表系統,一個Areas區域對應一個檔案,區域我們以後會用到
App.Models要引用System.ComponentModel.DataAnnotations類庫
為什麼我們要這麼做?不是已經有SysSample了,我們為什麼還要SysSampleModel
我們應該照顧到将來的系統的分布式,BLL層的分發的web服務
我們不應該還在controller還在操作底層,應該轉為
以後的講解中,我們會體會到好處。這裡帶過即可
接下來我們重新寫過IBLL,BLL,controller代碼,DAL,IDAL的代碼是沒問題的,很專注底層
BLL引用Microsoft.Practices.Unity類庫
修改後的代碼

ISysSampleBLL.cs

SysSampleBLL.cs

SysSampleController.cs

View視圖
因為SysSample在BLL層已經被釋放掉了,大家要注意一下是以視圖我們要改下
大家把代碼下載下傳下來,跟我們第5講糟糕的代碼對比一下。我們的代碼優化了,清晰了,構造器能自動釋放記憶體了,無需要執行個體化了。
當然預覽的效果是一樣的
這樣我們的系統實作了注入,我們需要好好了解這一講,後面我們要示範AOP面向方面,對系統日志和異常的處理。
我們有4層異常捕獲,你還怕你的系統在運作中出現不明的錯誤嗎????不過再次之前我們要将我們的系統變得更加有趣先。
下一講,傳回json格式與DataGrid結合,實作分頁。