gpt4 book ai didi

dependency-injection - 在 Ninject 中,如何在使用 Bind<..>.ToSelf() 创建对象后在对象上运行自定义代码?

转载 作者:行者123 更新时间:2023-12-04 08:20:23 25 4
gpt4 key购买 nike

在 Ninject 的依赖注入(inject)中,如果你像这样设置一个类到自身的绑定(bind):

Bind<SomeClass>().ToSelf();

Ninject 很好地解决了 SomeClass 的任何依赖关系,并将对象返回给您。我希望能够对它每次创建一个新的时返回的 SomeClass 做一些事情,就像一个后处理事件一样。我可以使用 .ToMethod(或 ToFactoryMethod)绑定(bind)来显式地新建它,但我希望它的所有依赖项都由 Ninject 预先解决。

做这样的事情会很好:
Bind<SomeClass>()
.ToSelf()
.After(sc => sc.MethodIWantToCall()); // then after here, Ninject returns the object.

在 Ninject 1.0/1.1 中有什么方法可以做到这一点吗?

最佳答案

如果不能把要执行的代码放在构造函数中,可以实现IInitializableIStartable .前者提供Initialize()在所有注入(inject)完成后调用的方法,后者同时提供 Start()Stop()方法,分别在激活和停用期间调用。

关于dependency-injection - 在 Ninject 中,如何在使用 Bind<..>.ToSelf() 创建对象后在对象上运行自定义代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1179148/

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