Ejemplo n.º 1
0
        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;
        }