管理一次性类依赖注入

Mic*_*ael 6 c# lifecycle dependency-injection ninject

我想知道如何使用DI管理对象.假设我有一堂课

class Foo : IFoo, IDisposable
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

然后这个类被注入另一个类

class Bar
{
    public Bar(IFoo foo)
    {
        this.Foo = foo
    }

    IFoo Foo { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

然后我在一些范围内绑定它(我的例子使用MVC和Ninject)

this.Bind<IFoo>().To<Foo>().InRequestScope();
Run Code Online (Sandbox Code Playgroud)

我想知道,因为依赖注入框架处理生命周期Foo,我应该实现IDispoable Bar吗?我的想法是DI正在管理其生命周期Foo,所以不要触摸它,以防其他类使用Foo.此外,由于一次性对象Bar作为构造函数参数传递,因此Bar不会包装一次性对象,因此它不知道后面Bar要使用的调用者是如何进行垃圾回收的.这是正确的吗?FooBar

Rem*_*oor 3

是的,你的假设是正确的。Ninject 将为您处理该对象。