この記事では、ASP.NET C# での Application の使用法を主に紹介します。Application の使用法を紹介する前に、参考と学習のためにまず Session の使用法を紹介します。フォローすることができます エディターと一緒に学びましょう。
Application オブジェクト
Application オブジェクトの有効期間は、Web アプリケーションの Web ページにアクセスされたときから始まり、HttpApplication クラスのオブジェクト Application が自動的に作成されるまでです。 Web ページにはアクセスしません。最後に、Application オブジェクトは自動的に取り消されます。したがって、Application オブジェクト内の変数の有効期間も同じであり、Web アプリケーション内のすべての Web ページから変数にアクセスできます。したがって、Application オブジェクトにいくつかのグローバル パブリック変数を設定できます。Application オブジェクトに格納されている値はアプリケーションのすべての Web ページで読み取ることができるため、Application オブジェクトのプロパティは Web ページ間で情報を転送するのにも適しています。アプリケーションの。
Application オブジェクトには主に次の用途があります:
l オンラインの人数または Web サイトを訪問する人の総数を記録する変数を格納します。
l は、すべての Web ページが更新するために Web サイトで共有される最新ニュースを保存します。
l ウェブサイトの各ウェブページで同じ広告がクリックされた回数または時間を記録します。
l すべての Web ページで使用されるデータベース データを保存します。
l マルチユーザー チャット ルーム、マルチユーザー ゲームなど、異なるアプリケーション間の通信
ASP.NET アプリケーションの使用方法に関しては、セッションとは大きく異なります。詳しい紹介を見てみましょう:
Sessionの使い方
1. Session.Addが同じ名前の場合、重複せず上書きされます。
Session.Add("s1", 1); Session.Add("s1", 2); // s1 最终只有一个值,就是 2。
2. 名前は大文字と小文字を区別しません。
Session.Add("s1", 1); Response.Write(Session["S1"]); // 值为 1
3. セッションの追加直後に値を取得できます(削除の場合も同様です)。これは次のページまで利用できない Cookie とは異なります。
Session.Add("s1", 1); Response.Write(Session["s1"] == null); // False,它不为 null
4. 保存されたセッションのデータ型はオブジェクトです。変換するには Convert を使用するのが最善です。
Convert.ToInt32(Session["s1"]);
文字列に変換する場合は、Session["s1"].ToString() の代わりに Convert.ToString() を使用するのが最善です。これは、Session が null の場合、メソッドの使用後にエラーが報告されるためです。 。
5. クラスでセッションを使用します。
System.Web.HttpContext.Current.Session
アプリケーションの使用法
重複名問題
HttpContext.Current.Application.Add("key1", "value1"); HttpContext.Current.Application.Add("key2", "value2"); HttpContext.Current.Application.Add("KEY2", "value3"); // name 忽略大小写 int count = HttpContext.Current.Application.Count; // 3 个 string[] keys = return HttpContext.Current.Application.AllKeys; // key1、key2、key2 string s = (string)HttpContext.Current.Application.Get("key2"); // value2 string s2 = (string)HttpContext.Current.Application.Get(2); // value3
上記のコードに示すように、結果は備考に記載されています。アプリケーションが同じキー値に遭遇した場合、エラーを報告したり前の値を上書きしたりせず、同時に存在していることがわかります。キー名を使用して値を取得すると、同じ名前を持つ最初の対応する値が取得されます。最後のものを取得する必要がある場合は、インデックスを使用します。
同じ名前を上書きしたい場合は、次のコードを使用できます
HttpContext.Current.Application.Add("key1", "value1"); // HttpContext.Current.Application.Add("key2", "value2"); string name = "key2"; object obj = HttpContext.Current.Application.Get(name); if (obj == null) { // 不存在,直接添加 HttpContext.Current.Application.Add(name, "value2"); } else { // 存在,不能直接调用 Add 方法,这样会造成两个相同 name 的条目 // obj = "value3"; // 这种方法行不通 HttpContext.Current.Application[name] = "value3"; } return (string)HttpContext.Current.Application[name]; // 用 [] 取值时,等同于 Get 方法
上記のコードでは、obj を直接変更することは機能しませんが、オブジェクトに遭遇した場合、次のコードは機能します。注: これは C# の値参照とアドレス参照に関する知識ポイントであり、アプリケーションとは関係ありません。
以上がASP.NET C# でアプリケーションを使用する方法のチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。