最近我在调试与 WebResponse 相关的代码时发现,我的问题在于在发出另一个 WebResponse 之前没有正确处理掉当前 WebResponse。我被误导了,因为要真正调用 dispose() 方法,需要将 WebResponse 强制转换为 IDisposable 接口(或者使用 "using" 等价方法)。
那么我的问题是:
1)微软公司是如何实现这一点的?
IDisposable 是一个公共接口,因此也是 public 的,但根据 MSDN 文档,WebResponse 更改了访问修饰符以变为 protected。我曾认为这是不可能的。
2)隐藏 dispose 方法的好处是什么?
为什么不允许 webResponse.Dispose() 直接有效呢?
那么我的问题是:
1)微软公司是如何实现这一点的?
IDisposable 是一个公共接口,因此也是 public 的,但根据 MSDN 文档,WebResponse 更改了访问修饰符以变为 protected。我曾认为这是不可能的。
2)隐藏 dispose 方法的好处是什么?
为什么不允许 webResponse.Dispose() 直接有效呢?
WebResponse
的释放?根据文档,WebResponse不仅继承了IDisposable
,还实现了Dispose()
方法。你只需要将你的WebResponse
对象包装在一个using
块中即可。 - Robert Harvey