/// <summary> /// Initializes a new instance of the WeakEventHandler /// </summary> /// <param name="eventHandler">event handler to hook up</param> /// <param name="unregister">callback to unregister the event handler</param> public WeakEventHandler(EventHandler <E> eventHandler, UnregisterCallback <E> unregister = null) { this.reference = new WeakReference(eventHandler.Target); this.openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, eventHandler.Method); this.handler = Invoke; this.unregister = unregister; }
public WeakEventHandler(EventHandler <TData> eventHandler, UnregisterCallback <TData> unregister) { _TargetRef = new WeakReference(eventHandler.Target); _OpenHandler = (OpenEventHandler)eventHandler.CreateDelegate(typeof(OpenEventHandler), (object)null); _Handler = Invoke; _Unregister = unregister; }
public WeakEventHandlerGeneric(H eventHandler, UnregisterDelegate <H> unregister) { _targetRef = new WeakReference((eventHandler as Delegate).Target); _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, (eventHandler as Delegate).Method); _handler = CastDelegate(new LocalHandler(Invoke)); _unregister = unregister; }
public AnotherWeakEventHandler(EventHandler <E> eventHandler, UnregisterCallback <E> unregister) { m_TargetRef = new WeakReference(eventHandler.Target); m_OpenHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, eventHandler.Method); m_Handler = Invoke; m_Unregister = unregister; }
public WeakEventHandler(EventHandler <E> eventHandler, UnregisterCallback <E> unregister) { _TargetRef = new WeakReference(eventHandler.Target); _OpenHandler = (OpenEventHandler)eventHandler.GetMethodInfo().CreateDelegate(typeof(OpenEventHandler), null); _Handler = Invoke; _Unregister = unregister; }
/// <summary> /// Creates a new object. /// </summary> /// <param name="eventHandler"></param> /// <param name="unregister"></param> public WeakEventHandler(EventHandler <E> eventHandler, UnregisterCallback <E> unregister) { _WeakReference = new WeakReference(eventHandler.Target); _OpenEventHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, eventHandler.Method); _EventHandler = Invoke; _UnregisterCallback = unregister; }
public ChoWeakEventHandlerState(EventHandler <E> eventHandler, UnregisterCallback <E> unregister) { _target = new WeakReference(eventHandler.Target); _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, eventHandler.Method); _eventHandler = Invoke; _unregister = unregister; }
public WeakCollectionChangedHandlerImpl(NotifyCollectionChangedEventHandler event_handler, Action <NotifyCollectionChangedEventHandler> unregister) { m_target_ref = new WeakReference(event_handler.Target); m_open_handler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, event_handler.Method); m_unregister = unregister; Handler = Invoke; }
public WeakEventHandler(EventHandler <TEventArgs> eventHandler, UnregisterCallback <TEventArgs> unregister) { _targetRef = new WeakReference(eventHandler.Target); _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, eventHandler.Method); _handler = Invoke; _unregister = unregister; }
public WeakEventHandler(EventHandler handler, Action <EventHandler> unregister) { Contract.Requires <ArgumentNullException>(handler != null, "handler"); _target = new WeakReference(handler.Target); _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, handler.Method); _handler = Invoke; _unregister = unregister; }
public WeakEventHandler([NotNull] EventHandler <TEventArgs> handler, Action <EventHandler <TEventArgs> > unregister) { Requires.NotNull(handler, nameof(handler)); _target = new WeakReference(handler.Target); _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, handler.Method); _handler = Invoke; _unregister = unregister; }
/// <summary> /// Initializes a new instance of the WeakEventHandler /// </summary> /// <param name="eventHandler">event handler to hook up</param> /// <param name="unregister">callback to unregister the event handler</param> public WeakEventHandler(EventHandler <TArgs> eventHandler, UnregisterCallback <TArgs> unregister = null) { #if WINRT throw new NotImplementedException(); #else this.reference = new WeakReference(eventHandler.Target); this.openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, eventHandler.Method); this.handler = Invoke; this.unregister = unregister; #endif }
public WeakDelegate(Delegate handler) { _weakTarget = handler.Target != null ? new WeakReference(handler.Target) : null; #if NET40 || NET45 _method = handler.Method; #else _method = handler.GetMethodInfo(); #endif _openHandler = _openHandlerCache.GetOrAdd(_method, CreateOpenHandler); }
public WeakEventHandler(EventHandler <TE> subscriber, Action <WeakEventHandler <TE> > unsubscriber) { _unsubscriber = unsubscriber; _targetRef = new WeakReference(subscriber.Target); _handler = Invoke; var target = Expression.Parameter(typeof(object), "target"); var sender = Expression.Parameter(typeof(object), "sender"); var args = Expression.Parameter(typeof(TE), "args"); _openHandler = Expression.Lambda <OpenEventHandler>( Expression.Call(Expression.Convert(target, subscriber.Target.GetType()), subscriber.Method, sender, args), target, sender, args).Compile(); }
public WeakEventHandler(EventHandler <TEventArgs> handler) { handler.ArgumentNotNull(nameof(handler)); if (handler.Method.IsStatic) { throw new EventHandlerMustNotHaveStaticMethodArgumentException(nameof(handler), null, null); } if (handler.Method.IsNull()) { throw new EventHandlerMustNotHaveNullMethodArgumentException(nameof(handler), null, null); } _targetReference = new WeakReference(handler.Target); _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, handler.Method); }
public WeakEventHandler(EventHandler <TEventArgs> strongEventHandler, Action <EventHandler <TEventArgs> > unregister) { if (unregister == null) { throw new ArgumentNullException("unregister"); } if (!(strongEventHandler.Target is TSubscriber)) { throw new ArgumentException("Expected event handler declaring type to be " + typeof(TSubscriber) + ", got " + strongEventHandler.Target.GetType(), "strongEventHandler"); } #if NET45 _target = new WeakReference <TSubscriber>((TSubscriber)strongEventHandler.Target); #else _target = new WeakReference(strongEventHandler.Target); #endif _openHandler = (OpenEventHandler)Delegate.CreateDelegate(typeof(OpenEventHandler), null, strongEventHandler.Method); _unregister = unregister; }
public WeakDelegate(Delegate handler) { _weakTarget = handler.Target != null ? new WeakReference(handler.Target) : null; _method = handler.GetMethodInfo(); _openHandler = OpenHandlerCache.GetOrAdd(_method, CreateOpenHandler); }
public StrongHandler(object target, OpenEventHandler openHandler) { _target = target; _openHandler = openHandler; }
internal void Open() { OpenEventHandler oDelegate = new OpenEventHandler(this.OpenDelegate); oDelegate.Invoke(); }