У меня есть проект ASP.Net, который использует состояние сеанса, я хотел бы быть немного более строгим относительно того, как мы обращаемся к состоянию сеанса, я не доволен всеми строками, плавающими вокруг кода. Мне также нужно знать, когда определенное значение хранится/обновляется в состоянии сеанса для отслеживания последнего значения этого объекта.Каков предпочтительный способ переноса состояния сеанса в ASP.Net?
Проблема с строкой легко решить с помощью констант, но это не помогает отслеживанию. Инкапсуляция их всех в одном классе привлекательный, но тогда я должен передать объект сеанса этого классу, и это кажется немного грязным
Я имею в виду, используя один из двух вариантов:
- Удлинители методы получения и установки на объекте сеанса
- метод расширения объекта сеанса, чтобы вернуть класс с добытчиками и сеттеров
Первый дает мне синтаксис:
var thing = Session.GetThing();
Session.SetThing(thing);
Второй дает:
var thing = Session.Wrapper().Thing;
Session.Wrapper().Thing = thing;
Оба имеют свою привлекательность, хотя я склоняюсь ко второму. В идеальном мире я хотел бы иметь возможность сделать это:
var thing = Session.Thing(); // easy to do
Session.Thing() = thing; // don't think it's possible
Каков предпочтительный способ обработки этого? Любой из них, иначе, или я просто делаю это неправильно?
Спасибо, я уже думал об этом. Я должен был искать, как получить доступ к состоянию сеанса из другого места, а не пытаться расширить объект HttpSessionState. – baralong