有人可以用简单的英文解释我把问号放在哪里的代码行吗?或者也许请指向一篇能够说明这一点的文章。此代码用于在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(); //-----?????
答案 0 :(得分:3)
这是一个依赖注入容器。 Autofac.ContainerBuilder
会获得一个新的容器,或者您可能会说的注册商。
builder.Register<NHibernateInstance>
表示在恢复阶段构建NHibernateInstance
(即从容器中获取实例)时,应该如何构建它。
最后一行表明在解析NHibernateInstance
时,应该在对象的生命周期内调用OpenSession
方法一次。