Autofac - 如何处理根生命周期?
Autofac - How to dispose the root lifetime?
我正在使用 Autofac 作为 windows 服务的 IoC 容器。
我有一个 class ConnectionManager
注册为单例(因此,绑定到 Autofac 的 root 生命周期范围)。
IoC 容器在服务的 OnStart()
方法中配置和初始化。常见的东西:
private IContainer _container;
public void OnStart()
{
var builder = new ContainerBuilder();
//initialize it...
_container = builder.Build();
}
我想确保 ConnectionManager
的(单例)实例在服务停止时被处理 - 即当 OnStop()
方法被调用时。
我想告诉 Autofac 容器:"Nice meeting you. Now prepare to die."
我的问题是:我怎样才能在 OnStop()
方法中获得根生命周期范围以便我可以处理它?
答案就在眼前。
容器本身就是根生命周期范围。所以处理容器以处理单例...
public void OnStop()
{
_container.Dispose();
}
我正在使用 Autofac 作为 windows 服务的 IoC 容器。
我有一个 class ConnectionManager
注册为单例(因此,绑定到 Autofac 的 root 生命周期范围)。
IoC 容器在服务的 OnStart()
方法中配置和初始化。常见的东西:
private IContainer _container;
public void OnStart()
{
var builder = new ContainerBuilder();
//initialize it...
_container = builder.Build();
}
我想确保 ConnectionManager
的(单例)实例在服务停止时被处理 - 即当 OnStop()
方法被调用时。
我想告诉 Autofac 容器:"Nice meeting you. Now prepare to die."
我的问题是:我怎样才能在 OnStop()
方法中获得根生命周期范围以便我可以处理它?
答案就在眼前。
容器本身就是根生命周期范围。所以处理容器以处理单例...
public void OnStop()
{
_container.Dispose();
}