c# - 管理一次性类依赖注入(inject)

标签 c# dependency-injection ninject lifecycle

我想知道如何使用 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。此外,由于一次性对象作为构造函数参数传递给 BarBar 不会包装一次性对象,因此它不会知道 Bar 的调用者如何在 Bar 被垃圾回收后使用 Foo。这样对吗?

最佳答案

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

关于c# - 管理一次性类依赖注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746972/

相关文章:

c# - 了解 Ninject mvc 3 样板代码

silverlight-4.0 - Prism 复合 Material 应用 - 可混合性

c# - 文件系统路径和 Directory.Exists()

c# - 如何使用 C# 中的互操作将整个现有 excel 范围向下移动一行

c# - `ReadAsAsync<string>` 和 `ReadAsStringAsync` 应该用来做什么?

java - 从 WebListener 中的 ServerContainer 中删除端点

dependency-injection - 可以禁用 Windsor 的 TypedFactoryFacility 的隐式委托(delegate)工厂注册吗?

c# - 如何使用VS2012在对象被释放时进行调试?

c# - Moq It.Is<> 不匹配