Что такое InstancePerLifetimeScope в 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 ответов


это контейнер для инъекций зависимостей. The Autofac.ContainerBuilder получает новый контейнер или регистратор, вы можете сказать.

на builder.Register<NHibernateInstance> указывает, что при построении NHibernateInstance на этапе восстановления (т. е. получение экземпляра из контейнера) это то, как он должен быть построен.

последняя строка указывает, что при разрешении NHibernateInstance на OpenSession метод должен вызываться один раз за время существования объекта.