¿Debilidad de error de referencia?

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

Es .NET 3.5 SP1
¿Alguien puede decirme por qué falla esta prueba?

Editar: Gracias stusmith

Tiene una referencia a una cadena, que, dado que es una constante, probablemente esté internada (es decir, no asignada dinámicamente) y nunca se recopilará.

Eso fue todo. Se cambió la primera línea a

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

y la prueba pasa :-)

Respuestas a la pregunta(1)

Su respuesta a la pregunta