2015-12-03 129 views

回答

0

我發現了這個問題。會發生什麼情況是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)) 
     { 
     } 

作爲一種變通方法我解決了這個方法調用之前的服務,並通過它作爲一個參數,它看起來真的很討厭,但我找不到更好的辦法來做到這一點。