Я пытаюсь зарегистрировать объект в Autofac, который отличается для каждого пользователя. Я думал об использовании текущей сессии, но я не могу найти способ это сделать. Я использую webforms, поэтому я не могу использовать this. Я пытаюсь создать Lifetimescope для своей сессии, но вместе с используемой мною мутенцией я не могу заставить ее работать. Кроме того, session_end никогда не выбрасывается. Так что это не вариант.Решение Autofac за сеанс
Я попробовал почти все, но это либо не нужное поведение (я хочу, что объект живет в сессии пользователей, поэтому, когда я обновляю объект Я хочу, чтобы спастись там тоже), или он не работает:
- Регистрация HttpSessionStateWrapper в Autofac и сделать мой объект зависит от него с помощью InstancePerOwned
- Создание пользовательского ContainerProvider, добавьте SessionLifeTime ILifetimeScope. Создайте lifetimecope в Session_Start и разрешите его
- Создайте SessionWrapper с методом Get < T>, который вернет объект из сеанса для меня и зарегистрирует этот объект в моем контейнере.
Есть ли способ разрешить один и тот же объект для сеанса каждого пользователя?
Надеюсь, кто-то может помочь!
Что именно вы пытаетесь кэшировать за сеанс? – Steven
Я разрабатываю механизм для sweepstake, поэтому я хочу кэшировать участника и введенный код и цену, которую он выиграл. – ydd1987
Возможный дубликат [Управление областями жизненного цикла AutoFac за сеанс и запрос в asp.net mvc 3] (http://stackoverflow.com/questions/11721919/managing-autofac-lifetime-scopes-per-session-and-request-in -asp-net-mvc-3) (несмотря на использование веб-форм, механизм будет таким же) –