Autofac中的InstancePerLifetimeScope是什么?

时间:2013-06-05 17:56:13

标签: autofac

有人可以用简单的英文解释我把问号放在哪里的代码行吗?或者也许请指向一篇能够说明这一点的文章。此代码用于在autofac容器中注册依赖项

var builder = new Autofac.ContainerBuilder();


builder.Register<NHibernateInstance>(c => 
    new NHibernateInstance(ConnString, false))
       .InstancePerDependency();//?????

builder.Register(c => c.Resolve<NHibernateInstance>()
    .GetFactory().OpenSession())
    .As<ISession>()
    .InstancePerLifetimeScope(); //-----?????

1 个答案:

答案 0 :(得分:3)

这是一个依赖注入容器。 Autofac.ContainerBuilder会获得一个新的容器,或者您可能会说的注册商。

builder.Register<NHibernateInstance>表示在恢复阶段构建NHibernateInstance(即从容器中获取实例)时,应该如何构建它。

最后一行表明在解析NHibernateInstance时,应该在对象的生命周期内调用OpenSession方法一次。