【发布时间】:2021-01-28 17:10:44
【问题描述】:
考虑这段代码
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 被释放之前,上下文无法关闭?
【问题讨论】:
-
为什么要关心
HttpClient的生命周期?
标签: c# asp.net-core dotnet-httpclient httpclientfactory