使用这种“懒惰”的处置结构是多么不正确:
protected new void Dispose()
{
var lst = GetType().GetProperties();
foreach (var item in lst)
{
if (item is IDisposable)
((IDisposable)item).Dispose();
}
base.Dispose();
}
为什么:)
如果这样的构造没有问题,为什么不到处使用这样的构造呢?
为什么不让它成为一种“通用”配置,(理论上)不需要重新定义以手动清理所有内容?
正如评论中指出的,
GetProperties返回类型元素的数组PropertyInfo这种类型没有实现接口
IDisposable,所以检查始终为 false 并且不会在任何字段上调用
Dispose。因此:不使用这种结构——因为它没有按预期工作。