Можно ли условно разрешить правильную ISession
область действия на основе атрибута действия MVC?
Bind<ISession>().ToMethod(ctx => (ISession)NHibernateHelper.Open())
.InRequestScope();
Bind<ISession>().ToMethod(ctx => (ISession)NHibernateHelper.Open())
.InSessionScope();
Псевдокод для возможного решения:
Bind<ISession>().ToMethod(...).InSessionScope()
.WhenActionHasAttribute(LongConversation);
// else use this binding
Bind<ISession>().ToMethod(...).InRequestScope()
Возможно, мой подход некорректен, и я открыт для альтернативных решений моей проблемы.
В зависимости от типа «разговора» в сети, мне нужнолибо оставьте NHibernateSession
для запроса / ответа HTTP или для сеанса HTTP.Большинство разговоров длится только один HTTP-запрос / ответ.
Примечание : InSessionScope
согласно Фредрик Калсет