通过 IHttpClientFactory 在委派处理程序中注入值



当使用 DelegatingHandler 和 IHttpClientFactory 为 IHttpClientBuilder 构建自定义 middelware 时。

我的类的构造函数如下所示。

public HttpApiFactory(HttpApifactoryConfig config, IHttpClientFactory httpClientFactory, IServiceProvider serviceProvider)
{
this.httpClientFactory = httpClientFactory;
this.serviceProvider = serviceProvider;
this.config = config;
}

这就是称为

public IApiClient CreateClient(MethodInfo methodInfo, object param, string pipelineName)
{
return new Simployer.Service.Client.HttpApiClient(
httpClientFactory.CreateClient(pipelineName), config.serializer);
}

我知道将被实例化的注册表处理程序之一需要给定对象的实例。此类型未在 IServiceCollection 中注册,因为我无法在启动时或工厂实例化该类。

我想在调用httpClientFactory.CreateClient((之前以某种方式将"methodInfo"参数添加到IServiceContainer,IServiceProvider。 我在想IServiceScope,但我找不到插入实例的方法。

我通过更改构造函数以接受能够为我获取值的工厂来解决它。

最新更新