public static void Raise <T>(this WeakEvent <EventHandler <T> > ev, object sender, T e) where T : EventArgs
        {
            EventHandler <T> d = ev.GetRaiseDelegate();

            if (d != null)
            {
                d(sender, e);
            }
        }
        public static void Raise(this WeakEvent <EventHandler> weakEvent, object sender, EventArgs e)
        {
            EventHandler d = weakEvent.GetRaiseDelegate();

            if (d != null)
            {
                d(sender, e);
            }
        }
 public HandlerEntry(WeakEvent <T> parentEventSource, object targetInstance, MethodInfo targetMethod)
 {
     this.ParentEventSource = parentEventSource;
     this.weakReference     = new WeakReference(targetInstance);
     this.TargetMethod      = targetMethod;
 }