ASP.NET MVC3實戰系列(三):MVC3中使用依賴注入(IOC)

來源:互聯網
上載者:User

在ASP.NET MVC3實戰系列(二):面向介面編程,提高系統可測試性。 中我們說之前的程式雖然可以單元測試。

第一就是我們暴露了HomeController的repository的屬性。

第二我們在類內部new了一個對象,假如我們這次是從資料庫中得到Lovers,下次想從檔案或者Web Service裡去資料時,我們必須修改Controller裡的代碼。

在這一節裡我們引入一個依賴注入的工具Ninject.

點擊安裝

修改HomeController為如下代碼

這樣我們就不需要暴露屬性了,修改對應的單元測試為如所示。測試順利通過

但是,當我們運行程式時出錯了,因為MVC在執行個體化Controller時出錯,因為沒有無參建構函式參數,而我們確要執行個體化帶參的建構函式。

 

我們需要自己執行個體化Controller,所以我們需要建立一個ControllerFactory並讓應用程式使用我們自己的這個ControllerFactory

然後在Global.asax.cs裡指定使用這個ControllerFactory

按F5運行程式又運行正常了

至此,這個應用程式已經易於測試了,而且面向了介面編程。易於擴充。

 

最後,打個小廣告:西安分公司急聘如下人員,有意者直接聯絡我,左邊側欄有我的連絡方式,部落格園招聘頻道有詳細描述 http://job.cnblogs.com/offer/13800/

基本要求:
4年以上C#開發經驗, .Net基礎紮實,熟練使用.Net3.5新特性。
精通ASP.NET Web開發。
熟練使用WCF.
熟練使用ORM,LINQ TO SQL /Entity Framework或者NHibernate.
熟練使用JavaScript, JQuery.
熟悉Web標準,熟悉HTML&CSS.
熟悉SQL Server, 熟練掌握T-SQL,預存程序。
英語讀寫熟練,可以看懂英文需求,可以和客戶流暢的用英語文字溝通(MSN/Skype)
良好的編碼習慣。

熟悉下面任意一項優先:
熟悉敏捷開發人員優先
英語聽說熟練者優先
熟悉ASP.NET MVC者優先。
熟悉WPF者優先
熟悉Silverlight優先
有系統架構經驗者優先,有單元測試或者TDD經驗者優先。

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.