我想知道如何使用 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
,我应该在 中实现 IDispoableBar
吗?我的想法是 DI 正在管理 的生命周期Foo
,所以不要碰它,以防另一个类正在使用Foo
. Bar
另外,由于一次性对象是作为构造函数参数传入的,Bar
不会包装一次性对象,所以它不知道调用者Bar
想要使用Foo
的对象是如何Bar
被垃圾回收的。这是正确的吗?