Слабая ссылка Ошибка?

[TestMethod]
public void Memory()
{
    var wr = new WeakReference("aaabbb");
    Assert.IsTrue(wr.IsAlive);
    GC.Collect();
    GC.Collect();
    GC.Collect();
    GC.Collect();
    GC.Collect();
    Assert.IsFalse(wr.IsAlive); //<-- fails here
}

Это .NET 3.5 SP1
Может кто-нибудь сказать мне, почему этот тест не проходит?

редактировать: Спасибо, Стусмит

У вас есть ссылка на строку, которая, поскольку она является константой, вероятно, является интернированной (то есть не выделяется динамически) и никогда не будет собрана.

Вот и все. Первая строка изменена на

var wr = new WeakReference(new object());

и тест проходит :-)

Ответы на вопрос(1)

Ваш ответ на вопрос