0

考虑这段代码

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

4

1 回答 1

0

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

于 2021-01-28T18:39:08.687 回答