Что такое 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
метод должен вызываться один раз за время существования объекта.