小编Ste*_*ven的帖子

在Ninject中跳过处理停用处理

我刚刚开始在一个(大型)项目中使用Ninject,并且只是使用DI来启动它的一部分.我有一个使用构造函数注入广泛组织的子系统.使用Ninject注入这个子系统中的类之间的所有依赖关系是很好的.但是,我依赖于子系统之外的东西,我真的想使用Ninject自动注入,但不要负责它们的生命周期.

我认为Bind<T>.ToConstant(...)这对我想做的事情有用.例如,我可能有一个类型的Monkey类作为Singleton,但我的应用程序的另一部分是在没有Ninject的情况下处理它的生命周期(例如,创建它并手动处理它).当我的Ninject配备子系统被创建时,我实例化一个内核,绑定我的子系统类,然后使用类似Bind<Monkey>.ToConstant(Monkey.Instance)绑定到各种"外部"依赖项的东西.这在激活时工作得很好但在我处理内核时不能按需工作.我的子系统可以比这些外部依赖项具有更短的生命周期,但是当我在内核上调用Dispose时,所有这些依赖项都会被释放,这不是我想要的.虽然我可以通过两种方式看到参数,但是Ninject会自动处理它没有创建的对象似乎有点可疑.我希望至少有一种方法可以选择退出这种行为,但到目前为止我还没有发现任何东西.这有什么支持吗?

c# ninject ninject-2

2
推荐指数
1
解决办法
522
查看次数

标签 统计

c# ×1

ninject ×1

ninject-2 ×1