Generische Session

Zugriffe: 4518 starstarstarstarstarstarstarstarstarstar Bewertung:3,5 (4 Bewertungen) 23.01.2010

In Ergänzung zum Blogbeitrag Session einmal anders verwalten könnte man doch das ganze um eine generische Methode erweitern, so dass man nicht mehr das anschließende Casten des Sessionrückgabewertes vornehmen muss. Im Folgenden zeige ich kurz, welche Änderungen hierzu erforderlich wären.


Die statische Klasse AppSession wird um eine generische Methode Get<T> erweitert.

Bild1

Da das Session-Objekt und der Enum SessionKey jeweils um die Get-Methode erweitert wurden, muss auch der generische Ansatz hier implementiert werden, wobei dann wie gehabt die generische Get<T>-Methode der AppSession-Klasse aufgerufen wird.

Bild2

und

Bild3

Eine Frage, die schnell beim debuggen autauchen kann, warum denn nun eigentlich casten, wenn im Watch-Fenster über GetType immer der richtige Type angegeben wird. Man möchte doch meinen, dass doch alles korrekt ist.

Bild4

Doch Vorsicht ist geboten - die Erkenntnis ist dann gewiss, möchte man mit dem Objekt arbeiten:

Mit der generischen Implementierung kann ich sofort auf dem Objekt arbeiten und Werte modifizieren,

Bild6

was ich in der klassischen Variante nicht kann.

Bild5

Berechtigter kritischer Einwand - auf null muss so oder so geprüft werden.
Statt auf dem Sessionobjekt, könnte man die gleiche Implementierung auch auf dem Applicationobjekt umsetzen.


Neuen Kommentar verfassen

Bestätigungscode