我想将IServiceProvider绑定到Ninject IKernel实现.有什么意义
Bind<IKernel>().ToConstant(this).InTransientScope();
Run Code Online (Sandbox Code Playgroud)
从Ninject 来源绑定?
这是Ninject如何将IKernel绑定到KernelBase实现的方式.我无法理解这一点.ToConstant绑定类型设置范围隐式为Singleton.而具有ToConstant绑定类型的TransientScope对我没有任何意义.
ToConstant 有两个主要影响:
现在调用.InTransientScope()之后ToConstant将范围从Singleton更改回瞬态.
这有什么变化?ninject不会处理"瞬态"对象.对于Singleton对象,如果它们是一次性的,ninject将在处理内核时处置它们.对于"瞬态"物体而言,它并没有这样做.
因此,如果内核被绑定.InSingletonScope(),kernel.Dispose()那么会导致另一个调用kernel.Dispose()- 甚至可能是Stack Overflow.
| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |