如果.net中有一个对象可以用于获取列表或对当前属于对象范围的所有对象的引用,请任何人都可以告诉我。例如,如果代码当前正在一个方法中执行,那么在此方法中声明的对象当前是实例化的还是活动的,以及在类级别声明的对象是否已经实例化并且还存活?
另外我知道我可以测试为空引用显式声明的每个对象,但我正在寻找更通用的东西(可能使用反射?),可以从任何方法使用它来清除所有活动对象。
提前致谢,
最好的问候,
杜安。
答案 0 :(得分:0)
我认为无法检索此信息。如果它可用,它可能会通过System.GC
类提供 - 但它不是。
反射只能让你到目前为止 - 你可以检查对象,并且在方法中使用一些技巧甚至局部声明,但是你没有简单的方法来知道哪些上下文是活动的。堆栈跟踪可以为(当前线程)调用堆栈生成所需的信息,但这将忽略当前应用程序域中的所有静态变量(并且System.AppDomain
类也不允许访问此信息)。 / p>