我想知道如何使用DI管理对象.假设我有一堂课
class Foo : IFoo,IDisposable { // ... }
然后这个类被注入另一个类
class Bar { public Bar(IFoo foo) { this.Foo = foo } IFoo Foo { get; set; } }
然后我在一些范围内绑定它(我的例子使用MVC和Ninject)
this.Bind<IFoo>().To<Foo>().InRequestScope();
我想知道,因为依赖注入框架处理Foo的生命周期,我应该在Bar中实现IDispoable吗?我的想法是DI正在管理Foo的生命周期,所以不要触摸它,以防其他类使用Foo.此外,由于一次性对象作为构造函数参数传递到Bar,因此Bar不会包装一次性对象,因此在Bar被垃圾回收后,它不知道Bar的调用者如何使用Foo.这是正确的吗?
解决方法
是的,你的假设是正确的. Ninject会为你处理这个物体.