考虑这段代码
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
?