/// <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();
         }
     }
 }
示例#3
0
 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();
                                           }
                                       } );
 }
示例#5
0
 public override void OnInvokeHandler(EventInterceptionArgs args)
 {
     ThreadPool.QueueUserWorkItem(state =>
     {
         try
         {
             args.ProceedInvokeHandler();
         }
         catch
         {
             args.ProceedRemoveHandler();
         }
     });
 }
示例#6
0
 public override void OnRemoveHandler(EventInterceptionArgs args)
 {
     Console.WriteLine("Event kaldırıldı");
     args.ProceedRemoveHandler();
 }
示例#7
0
 public override void OnRemoveHandler(EventInterceptionArgs args)
 {
     Console.WriteLine("Event {0} removed", args.Event.Name);
     args.ProceedRemoveHandler();
 }