У меня есть следующий код в модуль Autofac, который используется в моем методе Application_Start:Как я могу убедиться, что в запросе используется один NHibernate ISession с помощью Autofac?
builder.Register(c => new Configuration().Configure().BuildSessionFactory())
.SingletonScoped();
builder.Register(c => c.Resolve<ISessionFactory>().OpenSession())
.HttpRequestScoped();
builder.Register<NHibernateSomethingRepository>().As<ISomethingRepository>();
Конструктор для репозитория принимает ISession в качестве аргумента. Но я заканчиваю один сеанс для всего приложения, хотя я явно просил его HttpRequestScoped.
Я настроил HTTP-модуль ContainerDisposal.
В соответствии с documentation вам необходимо создать вложенный контейнер, но я разрешаю Autofac автоустанавливать зависимости.
Что мне делать?
Спасибо!
ПРИМЕЧАНИЕ: В Autofac2 по умолчанию изменилось - теперь: «factoryScoped» ака «InstancePerDependancy» в новом языке. – UpTheCreek 2010-05-08 15:30:29