Ninject - 初始化对象

时间:2010-03-25 00:27:30

标签: object ninject initialization

我是ninject的新手,我想知道在构造注入的对象时如何运行自定义初始化代码?即。我有一个实现IWeapon的Sword类,但我想将一个生命值传递给Sword类构造函数,我该如何实现呢?我需要编写自己的提供商吗?

一个小问题,IKernel kernel = new StandardKernel(new Module1(),new Module2(),...);在内核中拥有多个模块的实际用途是什么?我理解它,但有人可以给我一个正式的解释和用例吗?

非常感谢!

詹姆斯

1 个答案:

答案 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));