0

静的 Dictionary を使用して実装された単純な ServiceLocator クラスを含む自家製のフレームワークがあります。これは WinForms 環境用に開発されたもので、私が望んでいたことをうまく実行しました。

フレームワークを ASP.Net フレームワークとして使用する場合、これは大惨事であることがわかります。静的変数であるディクショナリは、最初の使用時にインスタンス化され、すべての ASP.Net アプリケーションが同じディクショナリを使用します。これは私の設計意図ではありません。

たとえば、Web アプリケーションは DB 監査サービス IAuditService の登録を試みます。エラー!!サービスはすでに最初のユーザーによって登録されています! ASP.Net 環境で発生する可能性のある静的変数の問題のヒントにすぎません。

Autofac IOC を試してみました。Autofac (または他の IOC) を使用して静的変数の問題を回避できますか?

BP....

4

2 に答える 2

0

IOC フレームワークを使用できますが、オブジェクトを固定したい場合は、自分で保存する必要があります。そうしないと、毎回 IOC コンテナーから新しいオブジェクトを要求することになります。

于 2009-09-21T18:48:31.133 に答える
0

Web アプリケーションに固有の新しいインスタンス化タイプを ServiceLocation に追加します。

于 2010-11-23T21:38:09.503 に答える