我可以在工厂中创建隐式生命周期范围吗?

时间:2013-01-27 06:13:16

标签: autofac

Autofac是否支持使用工厂的隐式生命周期范围?例如,我希望能够做到以下

public class Session : IDisposable
{
    public Session(A a, B b, C c)
    {
        ...
    }
} 

...

using (var session = _sessionFactory())
{
    ...
}

然后每次调用_sessionFactory都会让Autofac自动创建一个嵌套的生命周期范围?

1 个答案:

答案 0 :(得分:5)

是。让工厂返回Owned<Session>Owned instances表示调用代码负责处理服务。实际上,如果您从容器中解析Func<Owned<Session>>,Autofac将为您提供一个生成此类实例的自动工厂。