多注入

本文介绍如何使用Ninject框架实现对单一类的多次依赖注入。通过具体示例,展示了如何为一个对象注入多种类型的武器,并在实际业务场景中调用这些武器。此方法适用于需要对同一对象进行多重配置的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面介绍一下如何在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.NinjectModule
2     {
3         public override void Load()
4         {
5             Bind<IWeapon>().To<Sword>();
6             Bind<IWeapon>().To<Shuriken>();
7         }
8     }

然后在主函数中,开枪

1 static void Main(string[] args)
2         {
3             IKernel kernel = new StandardKernel(new TestModel());
4             var samurail = kernel.Get<Samurai>();
5             samurail.Attack("your army!");
6 
7             Console.Read();
8         }

这样就实现了给一个士兵绑定多把武器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值