.NET:如何配置我自己的范围服务之一以静态访问?

Ale*_*zzi 5 .net dependency-injection

我正在使用FeatureFilter. 它的限制之一是它注册为单例

这意味着为了从我自己的请求范围服务访问数据,我必须能够以类似于如何HttpContext使用HttpContextAccessor.

我可以遵循任何已知的资源或技术来设置我想要在我的静态范围FeatureFilter实现中调用的我自己的请求范围服务吗?

小智 1

我们使用的方法是通过 DispatchProxy 代理方法调用,该代理将解析来自 IServiceProvider 的实际依赖项(例如类型化 HTTP 客户端)并将调用代理到该实例。

实现在这里: https: //github.com/rwkarg/DependencyResolvingProvider

例如,我们有一个实现 IHostedService 的现有消息处理器组件(因此是单个实例),但如果处理消息需要 HttpClient 调用,则应按消息解析该客户端,以便 HttpClientFactory 能够管理该消息的生命周期底层 HttpClient 实例。