Castle WindsorをIOCとして使用して依存性注入を使用しています。しかし、コントローラクラスのコンストラクタに少数のアプリケーションサービスを注入した場合や、これらのアプリケーションサービスのコンストラクタに多数の項目が注入されている場合は、コントローラの動作に時間がかかりすぎる(20秒)。ASP.Net MVCコントローラのコンストラクタの初期化に時間がかかります
ここでいくつかの堅牢なソリューションをお助けください。
ありがとうございます!
更新 アプリケーションサービスの1つのコンストラクタに20個のリポジトリと15個のアプリケーションサービスが組み込まれています。
私は、A、B、Cの3種類のアプリケーションサービスを提供しています。ここでは、 のコンストラクタには、そのコンストラクタに25個のアイテム(20のリポジトリと5つのアプリケーションサービス)が注入されています。 コンストラクタBのコンストラクタは、コンストラクタ内に注入された35個のアイテム(25のリポジトリと10のアプリケーションサービス - そのうちの1つはCです)がAのコンストラクタ のコンストラクタに注入されています(20のリポジトリと15のアプリケーションサービス - 2つはBとCです)。そのコンストラクタ
したがって、Cのコンストラクタは3回(実際は5回)初期化されています。このカスケード効果が問題の原因です。少なくとも、それは私の考えです。
これに関するご提案はありますか?
解決策は、[注入コンストラクタがシンプルであること]を確実にすることです(http://blog.ploeh.dk/2011/03/03/InjectionConstructorsshouldbesimple/)。 – Steven
あなたは何を登録しているのですか? – jjj
*コード*が必要です。コンストラクタに物事を注入するだけでは、特に20秒余分ではありませんが、重要な処理時間を追加することはありません。しかし、処理時間を増やす*他の何かをやっている可能性は十分にあります。残念ながら、コードなしで誰が知っていますか? –