Ninject的OnActivation什么时候被触发?

问题描述 投票:5回答:1

我确定这是一个愚蠢的问题,因为我假设答案是“当对象被Ninject实例化时...。但是我要仔细检查...

为了给我为什么要问这个问题提供更多背景信息,我有一个实现NinjectHttpApplication的asp mvc应用程序。但是,在OnApplicationStarted覆盖范围内,我需要在Ninject绑定的单例实例上激活一个方法。

问题是内核已公开,但不应用作服务定位器,因此我可以从中获取对象并调用DoSomeSetup();方法,但这似乎是失败的。据我所知,NinjectHttpApplication实例没有被DI,因为Global.asax文件直接使用它,所以我不能以这种方式将其DI到应用程序中。

这给我留下了另一个选择,该选择是将OnActivation(x=>x.DoSomeSetup());调用添加到绑定中,但是此对象仅在某些地方使用,因此与第一次加载页面不同,它不像控制器,因此如果OnActivation等待创建第一个实例,则可能有一段时间不会发生。

希望这不太令人困惑:)

ninject
1个回答
2
投票
对于HttpApplication,您可以顺便使用属性注入。
© www.soinside.com 2019 - 2024. All rights reserved.