Autofac - 如何处置根生命周期?

时间:2015-07-23 12:19:08

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

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

我将一个类ConnectionManager注册为单例(因此,与Autofac的根生存期范围绑定)。

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

private IContainer _container;

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

    //initialize it...

    _container = builder.Build();
}

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

我的问题是:如何在OnStop()方法中获取根寿命范围,以便我可以处理它?<​​/ p>

1 个答案:

答案 0 :(得分:1)

答案是盯着我的脸。

容器本身是根生命周期范围。因此处置容器以使单件处理......

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