是否可以通过反射检查类型是否在使用块(调用Dispose)

时间:2013-10-21 12:57:36

标签: c# .net reflection

我需要自动查找未正确处理的所有代码。 是否可以通过反射检查我的类型N是否在using语句中使用(Dispose被调用)?

1 个答案:

答案 0 :(得分:4)

没有。你最接近的是添加一个终结器 - 可能是有条件的,这样它只包含在调试版本中 - 它会检查你是否已被处理并以其他方式记录问题。 (在这种情况下,你可能想要在构造上保持堆栈跟踪,以便责怪正确的代码。)

请记住,添加终结器会导致垃圾停留更长时间 - 尽管在Dispose调用中您可以取消最终确定,因此正确的代码不会受到重大损失,除了在构造上生成堆栈跟踪...

现在假设你想在执行时间做事情。有各种静态分析工具(例如code analysis built into Visual Studio)会在 build 时告诉您,如果它看起来没有正确处理所有内容。