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

时间:2015-03-06 09:47:05

标签: c# asp.net-web-api garbage-collection singleton

想象一下这种情况:你有一个单例对象和一个有一个指向这个单例的字段的类

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

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

我的问题是:这样的物体会发生什么?当请求结束时,它会被垃圾收集器删除吗?或者它会挂在记忆中,直到收集单身人士?

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

1 个答案:

答案 0 :(得分:1)

如果没有真正能够锁定对象的依赖关系,它将被收集。你只需要引用Singleton对象。

如果Singleton以某种方式保留了对你的控制器的反抗,那么你的控制器将被保留在内存中。