很多的DI架構中,XML映射檔案會快速的增加,而不容易導航。在Ninject中,類型綁定被集中到子產品中。每一個子產品代表應用程式中的一個獨立片段存在。它們可以以你喜歡的方式組織起來。子產品隻需實作IModule接口,但大多數子產品隻需簡單的從标準子產品(StandardModule)派生即可。
例:
public class WarriorModule : StandardModule
{
public override void Load()
Bind<IWeapon>().To<Sword>();
Bind<Samurai>().ToSelf();
}
一旦建立了子產品。就可以把這些對象收集到一個叫核心(kernel)的容器中。可以從字面上了解,這個核心是應用程式的核心。調用核心的Get()方法就可以得到一種類型的執行個體。
以下一個例子來闡述如何建立一個核心,然後激活它和通過它來建立一個類型執行個體。
IKernel _kernel = new StandardKernel(new WarriorModule());
Samurai sam = _kernel.Get<Samurai>();
sam.Attack("僵屍");
調用Get()方法的結果就是為武士裝備了一把劍。是以,調用武士的Attack()方法的結果和以前的結果相同。
可以建立許多子產品,然後把它們傳到核心的構造器中。
public class Modul_2 : StandardModule
{
……
同樣的,要記得子產品在應用程式中和其它代碼以同樣的方式執行。不它不隻是限于死綁,可以加上其它的語句,
if (true)
else
Bind<IWeapon>().To<Shuriken>();
參考原文:
http://ninject.codeplex.com/wikipage?title=Modules%20and%20the%20Kernel&referringTitle=User%20Guide部落格園大道至簡
http://www.cnblogs.com/jams742003/轉載請注明:部落格園