Błąd WeakReference?

[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
}

Jest to .NET 3.5 SP1
Czy ktoś może mi powiedzieć, dlaczego ten test kończy się niepowodzeniem?

Edytować: Dzięki stusmith

Masz odniesienie do łańcucha, który jest stałą, prawdopodobnie jest internowany (tzn. Nie jest przydzielany dynamicznie) i nigdy nie zostanie zebrany.

To było to. Zmieniono pierwszą linię na

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

i test przechodzi :-)

questionAnswers(1)

yourAnswerToTheQuestion