我想知道如何使用 DI 管理对象。假设我有一个类
class Foo : IFoo, IDisposable
{
// ...
}
然后这个类被注入(inject)到另一个类中
class Bar
{
public Bar(IFoo foo)
{
this.Foo = foo
}
IFoo Foo { get; set; }
}
然后我在某个范围内绑定(bind)它(我的示例使用 MVC 和 Ninject)
this.Bind<IFoo>().To<Foo>().InRequestScope();
我想知道,既然依赖注入(inject)框架处理了 Foo
的生命周期,我是否应该在 Bar
中实现 IDispoable?我的想法是 DI 正在管理 Foo
的生命周期,所以不要碰它,以防另一个类正在使用 Foo
。此外,由于一次性对象作为构造函数参数传递给 Bar
,Bar
不会包装一次性对象,因此它不会知道 Bar
的调用者如何在 Bar
被垃圾回收后使用 Foo
。这样对吗?
最佳答案
是的,您的假设是正确的。 Ninject 将为您处理该对象。
关于c# - 管理一次性类依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746972/