public static void Raise(this FastSmartWeakEvent <ChannelDataReceivedEventHandler> ev, object sender, ChannelDataReceivedEventArgs e)
        {
            var d = ev.GetRaiseDelegate();

            if (d != null)
            {
                d(sender, e);
            }
        }
        public static void Raise <T>(this FastSmartWeakEvent <EventHandler <T> > ev, object sender, T e) where T : EventArgs
        {
            var d = ev.GetRaiseDelegate();

            if (d != null)
            {
                d(sender, e);
            }
        }
        public static void Raise(this FastSmartWeakEvent <PropertyChangedEventHandler> ev, object sender, PropertyChangedEventArgs e)
        {
            var d = ev.GetRaiseDelegate();

            if (d != null)
            {
                d(sender, e);
            }
        }
        public static void Raise(this FastSmartWeakEvent <SerialPortDataRecievedEventHandler> ev, object sender, SerialPortDataRecievedEventArgs e)
        {
            var d = ev.GetRaiseDelegate();

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