如何获取对象是否已在注入中检索

发布于 2024-09-03 10:35:48 字数 381 浏览 5 评论 0原文

是否有可能知道 ninject kernel 已经满足了特定的依赖关系?需要明确的是:

假设我们有这个模块:

Bind<IA>().To<A>();
Bind<IB>().To<B>();

以及一些“客户端”代码:

var a = kernel.Get<IA>();

// how to get here "true" for assumption: "IA was requested (once)"
// and "false" for: "IB was not requested ever"

Is it possible to know that particular dependency already has been satisfied by ninject kernel? To be clear:

Let's suppose we have this module:

Bind<IA>().To<A>();
Bind<IB>().To<B>();

And some "client"-code:

var a = kernel.Get<IA>();

// how to get here "true" for assumption: "IA was requested (once)"
// and "false" for: "IB was not requested ever"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赠我空喜 2024-09-10 10:35:48

您可以在连贯绑定中使用 .Before* 和 .After* 来挂钩对某些内容的调用以将其标记为已使用。或者您可以查看 IDisposable 挂钩(请参阅源下载中的测试)。

http 中有很好的背景信息: //kohari.org/2009/03/06/cache-and-collect-lifecycle-management-in-ninject-20/ 也是

You could use .Before* and .After* in the fluent bindings to hook in a call to something to mark it used. Or you could look at the IDisposable hooks (see the tests in the source download).

There's good background info in http://kohari.org/2009/03/06/cache-and-collect-lifecycle-management-in-ninject-20/ too

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文