2013-06-05 2 views
6

Может кто-нибудь объяснить на простом английском языке, какие строки кода, где я помещал вопросительные знаки, делать? Или, может быть, указать мне на статью, которая освещает это. Этот код предназначен для регистрации зависимостей в контейнере с автофокусомЧто такое InstancePerLifetimeScope в 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(); //-----????? 
+5

Первый удар по Google: _ [InstanceScope - autofac - область экземпляра определяет, как экземпляр разделяется между запросами для одной и той же службы] (http://code.google.com/p/autofac/wiki/InstanceScope) _ –

+1

Это называется «Метод». щелкните правой кнопкой мыши по нему и выберите «Перейти к определению», если вы хотите увидеть, что он делает. –

ответ

3

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

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

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

Смежные вопросы