2010-12-20 5 views
0

Ich besuche eine App, die in den letzten 2 Jahren verwendet wurde und dringend überarbeitet werden muss. Es ist meine eigene Arbeit, aber Sie wissen, wie es ist, wenn Sie alten Code wieder besuchen.Refactoring Session-Variablen

Wie auch immer, ich habe die excellent advice at sourcemaking verwendet, um zu refaktorieren und der Code sieht schon viel besser aus.

Das Problem ist jetzt, es gibt eine Menge von Session ["Variable"] im gesamten Code verstreut, also was ist die am meisten akzeptierte Möglichkeit, diese umzuformen? Ich fand this article at code project, aber anscheinend kann es ziemlich gefährlich sein.

+0

Die Warnung, dass der Code gefährlich ist, sagt, dass es ist, wenn Sie "mehrere Benutzer" testen, indem Sie mehrere Registerkarten in IE öffnen. Dies ist nicht so, wie ein echtes Multi-User-Szenario funktionieren würde, jeder unterschiedliche Besucher hat seine eigene Session. – rtpHarry

+0

Stimmen Sie also zu, dass der Artikel in Ordnung ist für das, was ich erreichen möchte? –

Antwort

4

Der beste Weg, zufällige Session Nutzung Refactoring wie dies eine statische SessionWrapper mit statischen Eigenschaften zu schaffen, der die ASP.NET-Sitzung speichern kapseln:

static class SessionWrapper 
{ 
    public static string Variable 
    { 
     get { return Session["variable"]; } 
     set { Session["variable"] = value; } 
    } 
} 

Diese Sie auch erlauben eine gewisse Logik um das zu setzen diese Werte erhalten und einstellen und an einem zentralen Ort aufbewahren.

Ich würde auch dringend empfehlen, dass Sie einige Integrationstests haben, bevor Sie diesen Prozess starten, damit Sie sicher sein können, dass Sie nichts verpasst haben.

+0

Ein weiterer Vorteil dieser Methode ist, dass keine Typprüfung überall benötigt wird. – dhinesh

+0

Um dies zu "refactor" kann mit Find/Replace in VS erfolgen. – cjk