我使用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>
答案 0 :(得分:1)
答案是盯着我的脸。
容器本身是根生命周期范围。因此处置容器以使单件处理......
public void OnStop()
{
_container.Dispose();
}