我想這樣做是爲了測試我的代碼。我想我可以在弱引用對象周圍製作另一個包裝,但是更願意直接模擬原始對象被回收。如何強制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)已被問到。 –