/// <summary> /// Method invoked <i>instead</i> of the <c>Remove</c> semantic of the event to which the current aspect is applied, /// i.e. when a delegate is removed from this event. /// </summary> /// <param name="args">Handler arguments.</param> public override void OnRemoveHandler(EventInterceptionArgs args) { Console.WriteLine(string.Format("Event {0} removed.", args.Event.Name)); //If ProceedRemoveHandler is not called the handler that //was supposed to be removed will never get removed. args.ProceedRemoveHandler(); }
public override void OnRemoveHandler(EventInterceptionArgs args) { lock (_lockObject) { if (_delegates.Contains(args.Handler)) { _delegates.Remove(args.Handler); args.ProceedRemoveHandler(); } } }
private static void Invoke(EventInterceptionArgs args) { try { args.ProceedInvokeHandler(); } catch (Exception e) { Trace.TraceError(e.ToString()); args.ProceedRemoveHandler(); } }
public override void OnInvokeHandler( EventInterceptionArgs args ) { ThreadPool.QueueUserWorkItem( state => { try { args.ProceedInvokeHandler(); } catch { args.ProceedRemoveHandler(); } } ); }
public override void OnInvokeHandler(EventInterceptionArgs args) { ThreadPool.QueueUserWorkItem(state => { try { args.ProceedInvokeHandler(); } catch { args.ProceedRemoveHandler(); } }); }
public override void OnRemoveHandler(EventInterceptionArgs args) { Console.WriteLine("Event kaldırıldı"); args.ProceedRemoveHandler(); }
public override void OnRemoveHandler(EventInterceptionArgs args) { Console.WriteLine("Event {0} removed", args.Event.Name); args.ProceedRemoveHandler(); }