2010-12-20 7 views
0

私は過去2年以上使用されていて、リファクタリングが必要なアプリを訪れています。それは私自身の仕事ですが、古いコードをもう一度訪れたときの様子は分かります。セッション変数をリファクタリングする

とにかく私はexcellent advice at sourcemakingをリファクタリングに使用しています。コードは既によく見ています。

問題は現在、コード全体に多くのSession ["variable"]が振りかかっているため、これらをリファクタリングする最も一般的な方法は何ですか?私はthis article at code projectを見つけましたが、明らかにそれはかなり危険です。

+0

コードが危険であるという警告は、IEで複数のタブを開いて「複数のユーザー」をテストしている場合に発生します。これは、実際の複数のユーザーシナリオがどのように機能するかではなく、それぞれの異なるビジターが独自のセッションを持っています。 – rtpHarry

+0

それで私は達成しようとしているものについて記事がうまくいくことに同意しますか? –

答えて

4

このようなランダムなセッション使用をリファクタリングするための最良の方法は、ASP.NETのセッションストアをカプセル化する静的プロパティと静的SessionWrapperを作成することです:

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

これはまた、あなたが周りのいくつかのロジックを置くことができますこれらの値を取得して設定し、集中した場所に保管してください。

また、このプロセスを開始する前に何か不足していないことを確認できるように、いくつかの統合テストを実施することを強くお勧めします。

+0

このメソッドのもう1つの利点は、どこにでも型チェックが必要ないことです。 – dhinesh

+0

これに "リファクタリング"するには、VSの検索/置換で行うことができます。 – cjk