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

2024-02-10

在 Ninject 的依赖注入中,如果您像这样设置类与其自身的绑定:

Bind<SomeClass>().ToSelf();

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

最好做这样的事情:

Bind<SomeClass>()
    .ToSelf()
    .After(sc => sc.MethodIWantToCall()); // then after here, Ninject returns the object.

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


如果你不能把你想要执行的代码放在构造函数中,你可以实现IInitializable or IStartable。前者提供了一个Initialize()方法在所有注入完成后被调用,后者提供了Start() and Stop()方法,分别在激活和停用期间调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ninject 中,在使用 Bind<..>.ToSelf() 创建对象后,如何在对象上运行自定义代码? 的相关文章

随机推荐