我是ninject的新手,我想知道在构造注入的对象时如何运行自定义初始化代码?即。我有一个实现IWeapon的Sword类,但我想将一个生命值传递给Sword类构造函数,我该如何实现呢?我需要编写自己的提供商吗?
一个小问题,IKernel kernel = new StandardKernel(new Module1(),new Module2(),...);在内核中拥有多个模块的实际用途是什么?我理解它,但有人可以给我一个正式的解释和用例吗?
非常感谢!
詹姆斯
答案 0 :(得分:1)
如果你有一个带有这个构造函数的类Sword:
public Sword(int hitPoints)
...
您可能更愿意像这样实例化Swords,而不是实现Provider:
IWeapon sword1 = kernel.Get<IWeapon>(With.Parameters.ConstructorArgument("hitPoints", 10));
IWeapon sword2 = kernel.Get<IWeapon>(With.Parameters.ConstructorArgument("hitPoints", 20));