2012-05-12 28 views
1

ASP.NETでセッションごとにグローバルな変数を作成することはできますか?通常、私はセッションでこれを行う:ASP.NETセッション固有のグローバル変数を作成するには?

Session("my_variable") = 10 

しかし、これは、それをキャスト私はそうのようにそれを使用するたびに必要:

Dim my_variable as String = CInt(Session("my_variable")) 

私はモジュールを作成する場合、私はある変数を作成することができていることがわかり各セッションのプロジェクト全体に公開されています...また、Global.asaxは、モジュールによって提供される同じ機能の多くを可能にすることがわかります。私はモジュールを書くことを避けることを好むでしょう... Global.asaxまたは他のベストプラクティスの方法でこれを行う方法はありますか?または、セッション変数が最善の方法ですか?

答えて

2

その後、セッションオブジェクト、この

public class SessionVariables 
{ 

    public static int MyVariable 
    { 
    get{ return if(Session["my_variable"] != null) (int)Session["my_variable"]; else 0;} 
    set {Session["my_variable"] = value;} 
    } 


} 

のようなあなたの変数のためのラッパークラスを作成して、あなただけの保存/セッションスコープにデータを取得したい場合は

SessionVarible.MyVariable = 7; 

int p = SessionVarible.MyVariable + 3; 
1

のように使用します行く道です。 HttpModulesは、ASP.NETリクエストパイプラインの特定のポイントに結びついているいくつかの機能を実装するのに便利です(たとえば、認証リクエストにログを追加する場合など)。 Global.asaxは同様のことを可能にし、おそらくあなたの目的に合っています(global.asaxでターゲットにするイベントを実装するだけです)。

のオブジェクトからボクシング/ボクシングを心配している場合は、キャストを隠すラッパークラスを使用するというhkutluayの考えが好きです。

関連する問題