建議新手請先看看Ninject的介紹:
<a href="http://ninject.codeplex.com/wikipage?title=What%20Is%20Ninject%3F&referringTitle=User%20Guide">What Is Ninject</a>
<a href="http://ninject.codeplex.com/wikipage?title=Why%20Use%20Ninject%3F&referringTitle=User%20Guide">Why Use Ninject</a>
我節選其中關于Ninject的好處,并翻譯如下:
Ninject是一個快如閃電、超輕量級的基于.Net平台的依賴注入架構。它能夠幫助你把應用程式分離成一個個松耦合、高内聚的子產品,然後用一種靈活的方式組裝起來。通過使用Ninject配套你的軟體架構,那麼代碼将會變得更加容易編寫、重用性強、易于測試和修改。
搜尋部落格園尚未找到關于Ninject的使用,是以本文釋出一個示例作入門級教程。
像以前的IOC教程那樣,拿日志記錄做示例應該是非常直覺的。
首先編寫一個日志記錄的接口:
以及FlatFileLogger, DatabaseLogger 來實作Logger的邏輯(隻是為了示範Ninject的使用,是以具體邏輯是省略的,隻是通過控制台告訴大家使用了那個Logger):
Ninject通過NinjectModule來配置依賴注入(不知道有沒有檔案配置,在官方教程裡沒找到相關資料),這裡自定義自己的Module:
具體調用方法:
通過 kernel.Get<ILogger>() 來擷取ILogger的執行個體,之前在MyModule裡先後對ILogger 綁定了FlatFileLogger 和 DatabaseLogger,而kernel.Get<ILogger>() 這裡傳回第一個綁定的對象,即FlatFileLogger。
這裡建立一個ITester 和 IocTester, 而IocTester 依賴于ILogger:
下面看看Ninject是怎麼配置的,很簡單修改MyModule,綁定ITester:Bind<ITester>().To<IocTester>():
從以上配置中,我們是看不到IocTester 和ILogger 是有依賴關系的,這就是依賴注入的好處。隻是簡單告訴哪個接口對應哪個類,剩下的任務就可以交給Ninject來處理了。
另外Ninject 也支援屬性、方法等注入,具體可以參考使用者向導。
IOC的世界有句話是這樣說的:Don't call me, I will call you.
介紹Ninject 在ASP.NET MVC 的應用(英文)
<a href="http://codeclimber.net.nz/archive/2009/08/14/how-to-use-ninject-2-with-asp.net-mvc.aspx" target="_blank">How to use Ninject 2 with ASP.NET MVC</a>
另一篇關于微軟的IOC架構Unity的介紹:
<a href="http://www.cnblogs.com/coolcode/archive/2009/05/25/1488792.html">IOC : Unity 配置和使用</a>
本文轉自齊師傅部落格園部落格,原文連結:http://www.cnblogs.com/youring2/archive/2012/05/28/2520992.html,如需轉載請自行聯系原作者