До сих пор у меня сложилось впечатление, что место для хранения вашего сеанса - это просто переключатель конфигурации и не должно требовать изменения кода. У меня было неправильное представление, что переход от inproc к службе управления состоянием или базе данных не должен требовать изменения кода.
Мое заблуждение было нарушено, когда я понял, что объект, сохраненный в сеансе, должен быть сериализуемым, если им нужно работать со службой управления состоянием или базой данных. Это означает, что мне нужно пометить все те объекты, которые я планирую поместить в сеанс, как сериализуемые.
Как сделать так, чтобы развертыватели могли выбирать хранилище сеансов. О других вещах (наряду с сериализацией) мне нужно позаботиться, чтобы он работал с любым параметром хранения сеанса.
Спасибо.
Обновление
Следующий код должен работать в режиме inproc, но, я думаю, не будет работать с опцией управления состоянием или хранилищем сессии базы данных.
Предпочтения UserPreferences = Session ["UserPreferences"]; // UserPreferences в сериализуемом
preference.Autologout = true; // Я считаю, что это будет работать только с inproc. Обновленное значение не будет отражено в базе данных.
Приведенный выше шаблон обработки сеанса является распространенным. Как отловить такие проблемы во время кодирования / компиляции, а не во время выполнения. Существуют ли правила статического анализа кода для соответствующей обработки сеанса.