【问题标题】:Autofac - How to dispose the root lifetime?Autofac - 如何处理根生命周期?
【发布时间】:2015-07-23 12:19:07
【问题描述】:

我使用 Autofac 作为 Windows 服务的 IoC 容器。

我有一个类 ConnectionManager 注册为单例(因此,绑定到 Autofac 的 root 生命周期范围)。

IoC 容器在服务的OnStart() 方法中配置和初始化。常见的东西:

private IContainer _container;

public void OnStart()
{
    var builder = new ContainerBuilder();

    //initialize it...

    _container = builder.Build();
}

我想确保ConnectionManager 的(单例)实例在服务停止时被释放 - 即在调用OnStop() 方法时。 我想告诉 Autofac 容器:“很高兴见到你。现在prepare to die。”

我的问题是:我怎样才能在 OnStop() 方法中获得根生命周期范围,以便我可以处理它?

【问题讨论】:

    标签: windows-services inversion-of-control autofac ioc-container


    【解决方案1】:

    答案是盯着我的脸。

    容器本身就是根生命周期范围。所以处置容器以处置单例......

    public void OnStop()
    {
        _container.Dispose();
    }
    

    【讨论】:

      猜你喜欢
      • 2012-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      相关资源
      最近更新 更多