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

É o .NET 3.5 SP1
Alguém pode me dizer por que esse teste falha?

Editar: Obrigado stusmith

Você tem uma referência a uma string que, como é uma constante, provavelmente está internada (ou seja, não está alocada dinamicamente) e nunca será coletada.

Foi isso. Primeira linha alterada para

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

e o teste passa :-)

questionAnswers(1)

yourAnswerToTheQuestion