【发布时间】:2015-07-16 03:52:24
【问题描述】:
我的 asp.net mvc 应用程序中有一些服务用于侦听 AMQP 消息并调用方法。
没有控制器依赖于此,因此它不会自行实例化。
我可以手动实例化它,通过kernel.Get 显式提供它的依赖项,但感觉我不应该这样做。
我是否可以让 Ninject 在单例范围内急切实例化类,即使没有其他东西依赖它?
【问题讨论】:
-
当引导(应用程序启动)时,只需调用一次你的单例,它就会被创建。
-
@QualityCatalyst 是的,但要做到这一点,我必须明确提供我所有的单例依赖项。它所有的依赖都绑定在 Ninject 中,这使得 Ninject 很容易自己构建它。
-
如果你有一个带有注入(或构造函数)的属性,它将被自动实例化,你不必自己解决依赖关系。
-
@QualityCatalyst 我不明白我会怎么做?
-
将
Inject属性放在属性上方,如下所示:[Inject]。或者将类(或相关接口)传递给您在引导后直接调用的构造函数。