是否会在依赖注入对象上调用?

时间:2015-10-07 10:21:42

标签: idisposable

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

HttpClient

HTTPHttpClientHandler

IDisposable个类。

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

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

1 个答案:

答案 0 :(得分:0)

如果您查看sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:的代码,则会调用HttpClient.Dispose()执行以下操作:

base.Dispose()其中this.handler.Dispose();handlerHttpMessageHandler的实例。

此外,如果您按原样运行代码,一旦使用块完成,您将看到HttpClientHandler : HttpMessageHandler设置为true(使用Visual Studio中的调试器)。