DI用にAutofacを使用してデスクトップ版用に書き留めた従来のコアライブラリを再利用するMVC UIラッパーを作成しています。私が直面している問題は、MVCがInstancePerRequestを必要としている間は、コアライブラリがライフタイムスコープで動作していて変更できないということです。私のAutofac LifetimeScopeをMVCアプリケーションで使用することの欠点
MVCで、サービスをInstancePerRequestスコープに登録すると、要求が完了する前にコアライブラリによって処理されます。それはMVCアプリケーションを不幸にします。
MVCアプリケーションのすべてのサービスにもLifeTimeScopeを使ってみました。ライフタイムスコープはRequest Lifeよりも短いので、MVCで動作するようです。
このアプローチには欠点がありますか?
メモ:レガシーコードでは、常にサービスはコンストラクタを介して注入されるのではなく、手動で解決されます。同様:
using (var scope = IocContainer.BeginLifetimeScope())
{
var service = scope.Resolve<IMyService>();
return service.FindAll();
}