2015-10-07 68 views
0

我关心的是,如果GC将调用IDisposable参数传递给using() {}语句中的对象创建的处理方法。将配置调用依赖注入对象吗?

HttpClient 

HTTPHttpClientHandler 

IDisposable类。

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

// 1在这一点上GC将在客户端调用dispose()方法。 这是否意味着dispose()方法也会被调用handler呢?

回答

0

是的。

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

this.handler.Dispose();其中handlerHttpMessageHandlerHttpClientHandler : HttpMessageHandler一个实例。另外,如果您运行的代码是按原样编写的,则一旦使用块完成,您将看到handler.disposed设置为true(使用Visual Studio中的调试器)。