1

私は新しい ASP.NET Web サイトを設計しています (ASP.NET は私には少し新しいので、愚かな質問を許してください)、Global.asax のApplication_Startイベント (つまりnew myClass()) でインスタンス化するオブジェクトの寿命について疑問に思っていました。どこかの静的ポインターを介してオブジェクトを参照します。

これを行うことを考えていた理由は、多くの情報をデータベースに保存しているにもかかわらず、実行中の ASP.NET アプリケーションのマスター オブジェクトを作成して、ユーザー (ブラウザー) ごとにいくつかの情報を追跡するためでした。つまり、ユーザー キーによってインデックス付けされたセッションの配列を使用したかったのです。この配列は、myClass前述のように、Global.asax のApplication_Startイベントでインスタンス化される要素になります。NN 分後に外出したり、何もしなかったユーザーを考慮して、アレイを定期的にトリミングします。

または、アプリケーションの存続期間中にインスタンス化されたオブジェクトは存続期間に関して信頼できないため、これは単なるナッツですか。

前もって感謝します!

よろしく、 デレク

4

2 に答える 2

1

アプリケーションキャッシュを使用しないのはなぜですか?

残念ながら、msdn は現在ダウンしているようですが、リンクは http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspxです。

現在のHttpApplicationの Context プロパティを介して、asp.net サイトでアクセスできます。

于 2012-05-24T13:56:41.580 に答える
0

オブジェクトを作成する場所は問題ではありません。重要なのは、オブジェクトへの参照を保存する場所です。

参照を静的変数に入れると、オブジェクトはアプリケーションが実行されている限り存続します。

Web アプリケーションで静的変数を使用することには用途がありますが、Web アプリケーションはマルチスレッドであるため注意が必要です。オブジェクト内のデータを変更する場合は、一度に 1 つのスレッドだけがデータにアクセスできるように、データへのアクセスを同期する必要があります。

于 2012-05-24T13:54:41.010 に答える