Kilka metod ułatwiających pracę z obiektem sesji

01 lutego 2010, 22:47

KomentarzeKomentarze: 2 KategorieKategorie: asp.net mvc

Przechowywanie obiektów w sesji nie jest ogólnie wskazane ze względu na szybkość działania strony (poza typem InProc) jak i ulotność miejsca składowania (InProc). Mimo wszystko czasami trzeba. Aby ułatwić sobie pracę z obiektem sesji napisałem kilka pomocniczych metod rozszerzających możliwości HttpSessionStateBase.

Bardzo często zdarzają się przypadki przechowania czegoś na chwilę w kontekście użytkownika. Określamy zatem jakiś klucz i dodajemy do sesji. W innym miejscu aplikacji znów musimy posłużyć się tym samym kluczem, pod którym schowaliśmy sobie jakieś dane w sesji.

A gdyby tak pozbyć się tego klucza i tworzyć go po cichu automatycznie?

Na takim pomyśle opiera się działanie poniższych metod. Oczywiście nie zawsze da się pozbyć klucza dlatego też wszystkie metody mają dodatkowe przeciążenie. Dodatkowo wszystkie metody są typowane.

Podstawowymi działaniami są zapamiętanie obiektu w sesji i jego pobranie. Do tego służą odpowiednio metody AddItem oraz GetItem.

Przykładowo zapamiętujemy i odczytujemy obiekt typu UserContext w następujący sposób:

   1:  var ctx = new UserContext();
   2:  Session.AddItem<UserContext>(ctx);
   3:  // ...
   4:  // W innym miejscu aplikacji
   5:  var ctx2 = Session.GetItem<UserContext>();

Kod całej klasy zawierającej wszystkie metody znajduje się poniżej.

Czytaj więcej...

Ten artykuł jest widoczny także na: ZINE.NET

Jeśli spodobał Ci się ten artykuł, to podziel się tą informacją z innymi.