Ninject:将某些东西绑定到自身意味着什么?

时间:2014-05-09 07:40:29

标签: c# dependency-injection ninject

Ninject具有self binding的功能Bind<Samurai>().ToSelf();

我读到了这个,但我没有得到重要性或如何有用。任何评论都表示赞赏。

2 个答案:

答案 0 :(得分:7)

如果Ninject找到一个需要创建的对象,并且它有一个具有Samurai参数的构造函数,则它不知道如何实例化它。

但是当你使用Bind<Samurai>().ToSelf();时,Ninject知道需要创建一个Samurai来传递给Samurai参数。

如果那个绑定不存在那么ninject不知道要传递什么,例如可能有SamuraiSubClass类型。但是通过明确说明当Ninject发现需要为该参数创建Samurai的{​​{1}}参数时,Ninject才知道该做什么。

答案 1 :(得分:2)

我使用.WithConstructorArgument()相当多。 Bind<Samurai>().ToSelf().WithConstructorArgument("owner", user);这是向Samuari构造函数注入时提供对象的好方法。