C# 在“之间共享数据”;“请求范围”;和没有HttpContext的HttpMessageHandler

C# 在“之间共享数据”;“请求范围”;和没有HttpContext的HttpMessageHandler,c#,asp.net-core,dependency-injection,C#,Asp.net Core,Dependency Injection,我正在使用IHttpClientFactory,希望与自定义HttpMessageHandler共享(“请求-”)作用域数据。 由于MessageHandler维护自己的生命周期(它们在HttpClient之间共享,并在2分钟后过期,特别是在它们自己的DI作用域中运行,请参阅),我无法使用作用域服务共享数据 通常的解决方法是使用HttpContext并将数据存储在Items属性中,或者通过HttpContext.RequestServices属性访问请求范围的IServiceProvider 在

我正在使用IHttpClientFactory,希望与自定义HttpMessageHandler共享(“请求-”)作用域数据。 由于MessageHandler维护自己的生命周期(它们在HttpClient之间共享,并在2分钟后过期,特别是在它们自己的DI作用域中运行,请参阅),我无法使用作用域服务共享数据

通常的解决方法是使用HttpContext并将数据存储在Items属性中,或者通过HttpContext.RequestServices属性访问请求范围的IServiceProvider

在我的情况下,这不起作用,因为我正在使用一个同事构建的框架,该框架允许您处理ServiceBus事件,就像您在.NET core中处理REST调用一样:它将为传入请求创建作用域并执行worker,您将获得EventContext等。。。 但是:IHttpContextAccessor没有相似之处。。。 这意味着我不能依赖自定义HttpMessageHandler中的HttpContext之类的东西来提取事件范围的数据

这里的具体用例是:
来自服务总线事件的入站关联id应该作为标头透明地附加到出站HttpClient调用…

在进行了一些讨论之后,看起来像是使用HttpContextAccessor之类的东西扩展框架,利用AsyncLocal,看起来很有希望。