Я хотел сделать это, чтобы проверить свой код. Я предполагаю, что я мог бы сделать еще одну оболочку вокруг объекта weakreference, но предпочел бы работать непосредственно, чтобы имитировать исходный объект, который был исправлен.Как заставить WeakReference умереть?
Это код, который я до сих пор
var myString = "someString";
var myStringRef = new WeakReference(myString);
myString = null;
GC.Collect();
Assert.IsFalse(myStringRef.IsAlive) //I want this to pass, but it failed. IsAlive is still true.
Что я могу сделать, чтобы заставить последнюю строку выше не обязательно (то есть. !IsAlive
)
У меня есть некоторые рамки логики, что делает домашнее хозяйство основанный на статусе слабой ссылки. Я хочу быть в состоянии проверить эту логику, чтобы сделать это, мне нужно иметь возможность изменять состояние слабой ссылки по своему усмотрению - так как я могу это сделать?
Не задан точный дубликат, но [аналогичный вопрос] (http://stackoverflow.com/questions/208387/weakreference-bug). –