0
正如標題中所述,我試圖解決單身方法中的服務,但到目前爲止我無法確定問題是什麼。在註冊爲SingleInstance的服務中請求一個註冊爲InstancePerRequest的服務
問題是GetRequestLifetimeScope總是返回null。有任何想法嗎?謝謝
正如標題中所述,我試圖解決單身方法中的服務,但到目前爲止我無法確定問題是什麼。在註冊爲SingleInstance的服務中請求一個註冊爲InstancePerRequest的服務
問題是GetRequestLifetimeScope總是返回null。有任何想法嗎?謝謝
我發現了這個問題。會發生什麼情況是Autofac Web請求標記正在創建,只有當執行到達控制器。
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
if (securityProvider.ValidateAccess(sessionId, routeTemplate, request.Method.Method, out sessionData))
{
request.GetDependencyScope().GetRequestLifetimeScope().<IApiStorageService>()
}
}
在將請求傳遞給可調用Action的任務之前,該代碼在Web API Handler中執行。
var apiStorageService = request.GetDependencyScope().GetRequestLifetimeScope().Resolve<IApiStorageService>();
if (securityProvider.ValidateAccess(sessionId, routeTemplate, request.Method.Method, out sessionData, apiStorageService))
{
}
作爲一種變通方法我解決了這個方法調用之前的服務,並通過它作爲一個參數,它看起來真的很討厭,但我找不到更好的辦法來做到這一點。