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.

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.

und

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.

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,

was ich in der klassischen Variante nicht kann.

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.
Download: Codebeispiel.zip - (68 mal herunter geladen).
Ihr Kommentar zu diesem Beitrag: