2011-01-29 2 views
3

グローバルasaxファイルとは何ですか?私は、アプリケーションのページ全体で使用されるオブジェクトのユーザー固有の辞書を宣言することを検討しています。この辞書はどこで宣言しますか?グローバルasaxファイル

ありがとうございました。

答えて

2

でそれを初期化することができます。アプリケーションの起動、セッションの開始などのさまざまなイベントがあります。ここにMSDNのドキュメントへのリンクがあります:http://msdn.microsoft.com/en-us/library/fwzzh56s.aspx

シナリオでは、セッションの情報を永続化するためにsession startイベントを使用します。

+0

私はグローバルasaxの概念を得ました。 AppObjectsというファイルを作成しました。ユーザーオブジェクトとレポートオブジェクトを格納する2つの名前空間を持っています。 SessionObjectsという名前の第3の名前空間を追加したいと思います。この名前空間では、リストを格納して日付をキーとして使用する辞書を宣言します。この定義をどこでどのように行うのですか? – frenchie

+0

あなたはどのような問題に直面していますか?あなたがリストを取得し、そのリストがいくつかのクラスにあるかもしれないので、すぐにSession ["MyList"] = youクラスを含むリストに追加できます。それを使用してクラスに戻し、リストから項目を検索してください...これはただのものです...あなたの要件として使用してください.... –

3

Global.asaxファイルは、アプリケーションの開始、要求の開始、未処理の例外の伝播などのアプリケーションのグローバルイベントを登録するために使用されます。ユーザー固有のものはSessionに保存する必要があります。

+0

私はAppObjectsというファイルを作成しました。ユーザーオブジェクトとレポートオブジェクトを格納する2つの名前空間を持っています。 SessionObjectsという名前の第3の名前空間を追加したいと思います。この名前空間では、リストを格納して日付をキーとして使用する辞書を宣言します。この定義をどこでどのように行うのですか? – frenchie

5

Global.asaxには、アプリケーション全体を表すクラスが含まれています。辞書がユーザー固有のもの(つまり、すべてのユーザーに共通ではない)の場合は、ユーザー固有の場所にその辞書を保存する必要があります。ユーザー固有の何かを維持する必要があるときにまず気になるのは、セッションストレージを使用することです。 (MSDNを参照してください。)

追加したコメントあたり

public static class SessionObjects 
{ 
    public static Dictionary<DateTime, List<int>> MySessionStoredLists 
    { 
      get 
      { 
        var session = HttpContext.Current.Session; 
        if (session == null) throw new InvalidOperationException(); 
        var fromSession = (Dictionary<DateTime, List<int>>)session["MySessionStoredLists"]; 
        if (fromSession == null) 
        { 
          fromSession = new Dictionary<DateTime, List<int>>(); 
          MySessionStoredLists = fromSession; 
        } 
        return fromSession; 
      } 
      private set 
      { 
       session["MySessionStoredLists"] = value; 
      } 
    } 
} 

これはあくまでも一例ですが、あなたのアイデアは、私には少し不審そうです - あなたは毎日、ユーザーごとに何かを残しておきたいん基礎?完全な機能を備えた永続的なストレージは、データベースの方が優れていますか?

+0

私はAppObjectsというファイルを作成しました。ユーザーオブジェクトとレポートオブジェクトを格納する2つの名前空間を持っています。 SessionObjectsという名前の第3の名前空間を追加したいと思います。この名前空間では、リストを格納して日付をキーとして使用する辞書を宣言します。この定義をどこでどのように行うのですか? – frenchie

1

global.asaxファイルは、さまざまなアプリケーションレベルのイベントを処理できるアプリケーションクラスです。 Link to MSDN

あなたは(各ユーザーに固有である)セッションでこの辞書を格納するために満足している場合は、Global.asaxファイルは、アプリケーションレベルのイベント処理を定義するためのものであるSession_Start event

関連する問題