René 's Weblog
...und was die Welt schon immer nicht wissen wollte
Generische Session
Zugriffe:520Bewertung:0(0Bewertungen)23.01.2010 - René Drescher-Hackel

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.

Download:  

Codebeispiel.zip - (68 mal herunter geladen).

Kick it on dotnet-kicks.de
sehr gutungenügend

Ihr Kommentar zu diesem Beitrag:
your gravatar
Sollten die Eingabefelder deaktiviert sein, so aktualisieren Sie den Bestätigungscode.
Best&auml;tigungscode
Das Weblog von René Drescher-Hackel beschäftigt sich überwiegend mit Themen aus dem Bereich der Webanwendungsentwicklung mit den Themenschwerpunkten ASP.NET und C# im DOT-NET Framework 2.0 / 3.5. In der clientseitigen Entwicklung liegt der Schwerpunkt bei Javascript und jQuery. René; Drescher-Hackel hat die Prüfung zum Microsoft Certified Tecnology Specialist - .NET Framework 2.0 Web Applications abgelegt.