確かにそれは一般的な問題であるに違いありませんが、これを行う簡単な方法が見つかりません。
ページのすべてのコンポーネントにハンドルを渡すことなく、asp.net Webフォームのライフサイクルを通じてグローバル変数(インスタンス化に費用がかかるクラスなど)を共有する方法はありますか?
静的変数を作成するだけでは、アプリ ドメイン内のすべてのスレッドからアクセスでき (問題: 私のクラスはスレッド セーフではありません)、最新のコピーですべてのページが機能することを確認するのは困難です (キャッシュしたい)ページのライフサイクルのすべてのステップでクラスを変更しますが、新しいページが呼び出されるたびに新しいインスタンスが必要です)。
別の方法として、ページ内の各コントロールを介してハンドルを渡すこともできますが、マスター ページ、ページ自体、およびすべてのユーザー コントロールの間で、コードが非常に複雑になります。
この特定のページ (すべてのサブ ユーザー コントロールを含む) を実行しているスレッドのみがアクセスできる場所にクラスを格納するためのエレガントなソリューションがないかどうか疑問に思っていました。
どんな提案でも大歓迎です! ありがとうチャールズ