情景:
DI和Ninject相当新,但很想掌握它,以便我知道自己在做什么以及为什么。
在阅读一些示例和文档时,我注意到以下内容:
1. ToConstructor.
2. ToMethod
3. Self
如果有人可以帮助我了解何时以及如何使用上述内容,那将是件好事。一个例子就是好的。
感谢。
答案 0 :(得分:4)
HY,
自我绑定声明某种类型与自身的绑定。具有无参数构造函数的类型不需要自绑定。 Ninject可以自己实例化这些类型。如果您声明自我绑定,即Bind<Sword>().ToSelf();
,则只能执行Get<Sword>
。例如,Get<ISword>
将抛出ActivationException。
方法绑定允许您指定负责创建绑定类型实例的方法。例如,您可以执行以下操作:Bind<ISword>().ToMethod(() => new Sword(strength = 12));
您可以在此处查看ninject wiki上的更多示例:https://github.com/ninject/ninject/wiki/Dependency-Injection-With-Ninject