垃圾收集器:通过引用单例来处理对象

Garbage Collector: Taking care of object with a reference to singleton

想象一下这样的情况:你有一个单例对象和一个 class,它有一个指向这个单例的字段

public class MyClass
{
    private readonly MySingleton singleton = MySingleton.Instance;
    ...
}

现在您有了一个 WebApi 控制器,并且在每个请求中您都在创建 MyClass 类型的新对象。

我的问题是:这样的物体会发生什么?当请求结束时,它会被垃圾收集器删除吗?还是会一直挂在内存中直到单例被回收?

如果这是一个愚蠢的问题,请原谅我,但我很好奇。

如果没有真正会固定您的对象的依赖项,它将被收集。那里只有对 Singleton 对象的引用。

如果 Singleton 以某种方式保留对您的控制器的引用,那么您的控制器将保留在内存中。