Ninject具有self binding
的功能Bind<Samurai>().ToSelf();
我读到了这个,但我没有得到重要性或如何有用。任何评论都表示赞赏。
答案 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构造函数注入时提供对象的好方法。