っApplicationStateにasp.net なHttpContext
-
21-08-2019 - |
質問
俺はウエブアプを格納するコンフィグのオブジェクトApplicationState.このオブジェクトの接続文字列をデータベースにその他をお届けいたします。
から始めることもあるける非同期のスレッドに少な走行タスクのように、メールの送信および更新のデータベースです。
しかしこのスレッドがないのかHttpContextんでコンフィグのオブジェクトです。
このデザインするべてHttpContextが悪いのが、私が遅すぎから生まれたものだといえる。み反射いたように、これまでとは違った、HttpContextクラスの使用して静的な内部クラスを取得しApplicationState.する他に方法はないんですか?
すべての内部の授業です。純真に面白いです
解決
通り過ぎ合わせてご利用いただけまへのスレッドのときに開始されます。を使用 ParameterizedThreadStart 委譲を開始してあげてくださっ ThreadStart に限ります。きのいずれかでHttpContext.現在、バンドルの情報を利用したいスレッドに渡します。
他のヒント
は、をした場合、本当には、静的プロパティにアプリケーション状態のインスタンス(HttpApplication
)を格納するためにあなたのthis.Application
サブクラス(例えばGlobal.asaxの)を変更する必要があり、非同期ハンドラからアプリケーション状態(または類似)へのアクセスを必要としますApplication_Start
中:
public static HttpApplicationStateWrapper State { get; private set; }
protected void Application_Start()
{
State = new HttpApplicationStateWrapper(this.Application);
}
このインスタンスを登録するにはDIフレームワークを使用することがより適切であろうが、あなたが利用できるものを持っている場合、あなたはおそらく完全に設定を保存するためのアプリケーション状態の使用を避けることができます。さらに、直接このニーズに対応し、どこからでも設定を読み取る能力を提供し、.NETでのコンフィギュレーション・フレームワークがあります。