下面介绍一下如何在Ninject范围内多次注入。
现在,我们要给士兵装备多种武器,有剑有大刀。
修改Samuria类,修改后的代码如下:
1 class Samurai 2 { 3 readonly IWeapon[] weapons; 4 public Samurai(IWeapon[] weapons) 5 { 6 this.weapons = weapons; 7 } 8 9 public void Attack(string targer)10 {11 foreach (IWeapon weapon in weapons)12 {13 weapon.Hit(targer);14 }15 }16 }
在Ninject的Model类中绑定多个武器:
1 class TestModel:Ninject.Modules.NinjectModule2 {3 public override void Load()4 {5 Bind().To ();6 Bind ().To ();7 }8 }
然后在主函数中,开枪
1 static void Main(string[] args)2 {3 IKernel kernel = new StandardKernel(new TestModel());4 var samurail = kernel.Get();5 samurail.Attack("your army!");6 7 Console.Read();8 }
这样就实现了给一个士兵绑定多把武器。