ASP.NETアプリケーションの依存性注入コンテナを作成して、アプリケーションの存続期間中に存続させることは非常に一般的です。依存性注入要求ごとのコンテナ
それぞれのリクエストでDIコンテナを作成し、リクエストの最後にDIコンテナを解放します。
主な目的は、任意のDIコンテナが、コンテナが廃棄されるときにオブジェクトを廃棄することをサポートすることです。
追加:私は要求(NHibernateのSessionFactoryの)間でリソースを共有する必要がある場合私は静的変数でそれらを維持し、要求ごとのオブジェクトにその値をカプセル化します。このように:
public class SessionFactoryAggregator : ISessionFactory {
static ISessionFactory actualFactory;
// Implement ISessionFactory and proxy calls to the actualFactory
}
これはちょうどシミュレートされたシングルトンパターンです。
私の質問:
- は、それはそれを行うにはOKですか?
- なぜではなく、代わりに何をすべきか?
- この手法のパフォーマンスに関する既知の問題はありますか?
アップデート:私はDIプロバイダの私自身の抽象化を通じて城ウィンザーを使用瞬間ので、実際のコンテナがプラグ可能です。
ありがとうございました。