global.asax.csに依存関係を挿入するにはどうすればいいですか?つまり、MvcApplicationクラスですか?global.asax.csへの依存関係注入方法
以前は依存関係注入のためにサービスロケータ(反)パターンを使用していましたが、IOCコンテナを使用して最新のMVCアプリケーションのベストプラクティスのアドバイスを実行しようとしています(Unity.Mvc3 IDependencyResolverをそのまま使用)とコンストラクタインジェクション。
これまでのところ、いくつかのスラッグを除いてすべてがまっすぐに見えますが、そのうちの1つはglobal.asax.csにあります(もう1つはカスタム属性ですが、それをカバーするSOLに関する質問があります)。などMvcApplicationクラスの
のHttpApplicationイベントハンドラ:
Application_Start()
Application_EndRequest(object sender, EventArgs e)
Application_AcquireRequestState(object sender, EventArgs e)
は、例えば、外部依存を必要とするかもしれませんILogServiceへの依存。どのようにして、サービスロケータ(反)パターンに頼らずにそれらを注入するのですか?
private static ILogService LogService
{
get
{
return DependencyResolver.Current.GetService<ILogService>();
}
}
ご協力いただきありがとうございます。
こんにちは、興味深い質問:例えば -
しかし、MvcApplicationクラスのインスタンスは1つだけですので、あなたはその方法の一つでサービスが必要な場合は、あなただけのメンバーフィールドとしてそれを宣言することができます! OnApplicationStartedのglobal.asax内に依存関係を挿入できないのはなぜですか?アプリケーションが起動できない場合は、何も動作しないので、あなたはそれに気づくでしょう... –