6

Can someone please explain in plain English what the lines of code where I put the question marks do? Or maybe point me to an article that puts light on this. This code is for registering dependencies in an autofac container

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(); //-----?????
4

1 回答 1

3

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

builder.Register<NHibernateInstance>说明NHibernateInstance在恢复阶段构建一个实例时(即从容器中取出一个实例),这就是它应该被构建的方式。

最后一行表示当解析一个方法时NHibernateInstanceOpenSession每个对象的生命周期都应该调用一次。

于 2013-06-05T18:00:25.977 回答