У меня есть проект 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
Какой предпочтительный способ справиться с этим? Любой из них, другой способ, или я просто делаю это неправильно?