【发布时间】:2012-06-27 03:03:59
【问题描述】:
场景:
对 DI 和 Ninject 很陌生,但我很想掌握它,以便我知道在做什么以及为什么。
在浏览一些示例和文档时,我注意到以下几点:
1. ToConstructor.
2. ToMethod
3. Self
如果有人可以帮助我了解何时以及如何使用上述内容,那就太好了。举个例子就好了。
谢谢。
【问题讨论】:
场景:
对 DI 和 Ninject 很陌生,但我很想掌握它,以便我知道在做什么以及为什么。
在浏览一些示例和文档时,我注意到以下几点:
1. ToConstructor.
2. ToMethod
3. Self
如果有人可以帮助我了解何时以及如何使用上述内容,那就太好了。举个例子就好了。
谢谢。
【问题讨论】:
喂,
Self 绑定声明某种类型的绑定到自身。具有无参数构造函数的类型不需要自绑定。 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
【讨论】: