Asp.net web api 自托管Web.Api-访问属性中的HttpRequestMessage或依赖项解析器

Asp.net web api 自托管Web.Api-访问属性中的HttpRequestMessage或依赖项解析器,asp.net-web-api,owin,Asp.net Web Api,Owin,我有一个Web.Api应用程序目前正在IIS下运行,该应用程序正在使用Owin转换为自托管应用程序 我需要从属性中访问依赖项解析器,以便访问服务实例。(应用程序正在使用Unity进行DI) 由于我找不到将此服务注入属性的方法(如果有的话,我很想听听),我目前通过HttpContext从HttpRequestMessage获取解析器。当前:- HttpRequestMessage request = HttpContext.Current.Items["MS_HttpRequestMessage"

我有一个Web.Api应用程序目前正在IIS下运行,该应用程序正在使用Owin转换为自托管应用程序

我需要从属性中访问依赖项解析器,以便访问服务实例。(应用程序正在使用Unity进行DI)

由于我找不到将此服务注入属性的方法(如果有的话,我很想听听),我目前通过
HttpContext从
HttpRequestMessage
获取解析器。当前
:-

HttpRequestMessage request = HttpContext.Current.Items["MS_HttpRequestMessage"] as HttpRequestMessage;

var service = request.GetDependencyScope().GetService(typeof(IService)) as IService;
这对于在IIS下运行的应用程序很好,但在Owin
HttpContext
下不存在

我在应用程序启动时遇到了配置:-

public void Configuration(IAppBuilder appBuilder)
{
    appBuilder.UseRequestScopeContext();

    \\...
并从
DelegatingHandler

protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
    OwinRequestScopeContext.Current.Items["HttpRequestMessage"] = request;

    \\...
受保护的异步覆盖任务SendAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
{
OwinRequestScopeContext.Current.Items[“HttpRequestMessage”]=请求;
\\...
但当我在属性中访问
OwinRequestScopeContext
时,
OwinRequestScopeContext.Current.Items
为空

我似乎遇到了与相同的问题,但提供的答案似乎没有解决我的问题

有谁能告诉我,我在
OwinRequestScopeContext
中做错了什么和/或从属性中访问依赖项解析程序或HttpRequestMessage的最简单方法是什么