Использование сеанса ASP.net таким образом, чтобы сделать его гибким для перехода от хранилища сеансов inproc к серверу управления состояниями или базе данных - PullRequest
1 голос
/ 30 августа 2011

До сих пор у меня сложилось впечатление, что место для хранения вашего сеанса - это просто переключатель конфигурации и не должно требовать изменения кода. У меня было неправильное представление, что переход от inproc к службе управления состоянием или базе данных не должен требовать изменения кода.

Мое заблуждение было нарушено, когда я понял, что объект, сохраненный в сеансе, должен быть сериализуемым, если им нужно работать со службой управления состоянием или базой данных. Это означает, что мне нужно пометить все те объекты, которые я планирую поместить в сеанс, как сериализуемые.

Как сделать так, чтобы развертыватели могли выбирать хранилище сеансов. О других вещах (наряду с сериализацией) мне нужно позаботиться, чтобы он работал с любым параметром хранения сеанса.

Спасибо.

Обновление Следующий код должен работать в режиме inproc, но, я думаю, не будет работать с опцией управления состоянием или хранилищем сессии базы данных.

Предпочтения UserPreferences = Session ["UserPreferences"]; // UserPreferences в сериализуемом preference.Autologout = true; // Я считаю, что это будет работать только с inproc. Обновленное значение не будет отражено в базе данных.

Приведенный выше шаблон обработки сеанса является распространенным. Как отловить такие проблемы во время кодирования / компиляции, а не во время выполнения. Существуют ли правила статического анализа кода для соответствующей обработки сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...