0
Autofacの使用方法とライフタイムスコープとの併用に関するドキュメントは見つかりません。ライフタイムスコープとレイジー初期化?
:「タグ一致する 『トランザクション』がいかなるスコープは、インスタンスが要求された範囲 から見えない...」私のコントローラのコンストラクタで
に関するエラーを取得私のアクションでpublic HomeController(Lazy<ISalesAgentRepository> salesAgentRepository, Lazy<ICheckpointValueRepository> checkpointValueRepository) { _salesAgentRepository = new Lazy<ISalesAgentRepository>(() => DependencyResolver.Current.GetService<ISalesAgentRepository>()); _checkpointValueRepository = new Lazy<ICheckpointValueRepository>(() => DependencyResolver.Current.GetService<ICheckpointValueRepository>()); }
:
using (var transactionScope = AutofacDependencyResolver.Current.ApplicationContainer.BeginLifetimeScope("transaction")) { using (var repositoryScope = transactionScope.BeginLifetimeScope()) { // .... } }
生涯スコープはLazyと互換性がないのですか、それとも完全に間違っていましたか?
ウェブAPIフィルタの場合。文脈からそれを解決してください。 'filterContext.Request.GetDependencyScope()。GetService(typeof(IUnitOfWork))をIUnitOfWork'として実行します。それ以外の場合は、ルートコンテナから解決され、要求内の同じインスタンスにはなりません。 Web APIはキャッシュされたシングルトンをフィルタリングするためです。 –