会在依赖注入对象上调用 dispose 吗?

Will be dispose called on dependency injection object?

我担心,如果 GC 将在 IDisposable 参数上调用 dispose 方法传递给在 using() {} 语句中创建的对象。

HttpClient

HTTPHttpClientHandler

IDisposable类。

var handler = new HttpClientHandler();
using (var client = new HttpClient(handler))
{
}//1

//1 此时GC会调用客户端的dispose()方法。 这是否意味着dispose() 方法也会在 handler 上调用?

是的。

如果您查看 HttpClient.Dispose() 的代码,它会调用 base.Dispose(),它会执行以下操作:

this.handler.Dispose(); 其中 handlerHttpMessageHandlerHttpClientHandler : HttpMessageHandler.

的实例

此外,如果您 运行 按原样编写代码,一旦 using 块完成,您将看到 handler.disposed 设置为 true(使用 Visual Studio).