使用从HttpClientFactory注入的HttpClient超出作用域



考虑以下代码

public class ScopedService {
public readonly HttpClient client;
public readonly MyHostedService hostedService;
public ScopedService(HttpClient client, MyHostedService hostedService) {
this.client = client;
this.hostedService = hostedService;
}
public void LongAsyncOperationWeDontWantToWaitFor()
{
var httpTask = client.GetAsync("...");
hostedService.SaveTaskForProcessSometimeInTheFuture(httpTask);
}
}

我有一个作用域服务,它使http调用。我希望在http调用完成之前关闭作用域。如果我手动创建和处理httpClient,那么我将自己在范围之外执行它。但是,由于在这种情况下,客户端是依赖注入的,我无法控制它何时被处置。在注入的httpClient被处理掉之前,是否存在环境无法关闭的情况?

你可以注入IHttpClientFactory并在需要的时候使用它来创建HttpClient。

最新更新