private static void InvalidateEventHandler(WeakEventHandler <EventHandler <EventArgs>, EventArgs> weakEventHandler) { // use reflection to set WeakReference.Target to null (this simulates the target object going out of scope) FieldInfo callbackField = weakEventHandler.GetType().GetField("_target", BindingFlags.Instance | BindingFlags.NonPublic); Assert.IsNotNull(callbackField); WeakReference reference = callbackField.GetValue(weakEventHandler) as WeakReference; Assert.IsNotNull(reference); reference.Target = null; }