如果我有一个为多注入设置的 ctor 类,如下所示:
public Shogun(IEnumerable<IWeapon> allWeapons)
{
this.allWeapons = allWeapons;
}
绑定设置如下:
Bind<IWeapon>().To<Sword>();
Bind<IWeapon>().To<Dagger>().WhenInjectedInto<Shogun>();
那么我会期望幕府将军在建造时注入两种武器?但事实并非如此——它只会得到匕首。
如果我像这样添加进一步的绑定:
Bind<IWeapon>().To<Sword>();
Bind<IWeapon>().To<Dagger>().WhenInjectedInto<Shogun>();
Bind<IWeapon>().To<Shuriken>().WhenInjectedInto<Shogun>();
然后幕府将军得到匕首和手里剑。WhenInjectedInto<T>()
看起来它应该只限制它所应用的绑定而不影响其他绑定。我发现这种行为非常具有误导性。
有人可以解释这里发生了什么吗?