InstancePerHttpRequest
スコープを持つコンポーネントを登録した ASP.NET MVC アプリケーションがあります。
builder.RegisterType<Adapter>().As<IAdapter>().InstancePerHttpRequest();
次に、Adapter コンポーネントを解決する非同期コードがあります。
次のコードは簡略化されています
Task<HttpResponseMessage> t = Request.Content.ReadAsMultipartAsync(provider).ContinueWith(t =>
// IHandleCommand<T> takes an IAdapter as contructor argument
var h = DependencyResolver.Current.GetServices<IHandleCommand<T>>();
);
上記のコードは例外をスローしています。The request lifetime scope cannot be created because the HttpContext is not available.
だから私は主題についていくつかの調査を行い、この答えを見つけました https://stackoverflow.com/a/8663021/1003222
次に、解決コードをこれに調整しました
using (var c= AutofacDependencyResolver.Current.ApplicationContainer.BeginLifetimeScope(x => x.RegisterType<DataAccessAdapter>().As<IDataAccessAdapter>).InstancePerLifetimeScope()))
{
var h = DependencyResolver.Current.GetServices<IHandleCommand<T>>();
}
しかし、例外は同じままでした。The request lifetime scope cannot be created because the HttpContext is not available.
何か不足していますか?