gpt4 book ai didi

ninject - Ninject 的 OnActivation 何时被解雇?

转载 作者:行者123 更新时间:2023-12-04 21:23:38 26 4
gpt4 key购买 nike

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

为了提供更多关于我为什么问这个问题的背景信息,我有一个实现 NinjectHttpApplication 的 asp mvc 应用程序。 .然而在 OnApplicationStarted我需要在 Ninject 中绑定(bind)的单例实例上激活一个方法。

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

这给我留下了另一种选择,即添加 OnActivation(x=>x.DoSomeSetup());调用绑定(bind),但是这个对象只在某些地方使用,所以它不像你第一次加载页面时 Controller 需要它,所以如果 OnActivation等待第一个实例被创建,它可能暂时不会发生。

希望这不会太令人困惑:)

最佳答案

是的,你的假设是正确的(或者至少大部分是正确的)。即使不是由 Ninject 创建(例如常量),也会在第一次解析实例时运行激活操作

对于 HttpApplication ,您可以顺便使用属性注入(inject)。

关于ninject - Ninject 的 OnActivation 何时被解雇?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7590209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com