我想这样做是为了测试我的代码。我想我可以围绕弱引用对象制作另一个包装器,但更愿意直接模拟原始对象被回收。
这是我到目前为止的代码
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
)
我有一些框架逻辑可以根据弱引用的状态进行内务处理。我希望能够测试该逻辑,为此,我需要能够随意更改弱引用状态 - 那么我该怎么做呢?