Advertisement
midspace

remove events

May 26th, 2015
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.97 KB | None | 0 0
  1. RemoveEvent(_timer, "Elapsed", "onIntervalElapsed");
  2.  
  3. private static void WriteMessage(string message, params object[] args)
  4. {
  5.     Console.SetCursorPosition(0, Math.Min(Console.BufferHeight - 1, Console.CursorTop + (Console.CursorLeft == 0 ? 0 : 1)));
  6.     Console.WriteLine(message, args);
  7. }
  8.  
  9. private const BindingFlags AllBindingFlags =
  10.     BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
  11.  
  12. private static void RemoveEvent<T>(T item, string eventName, string fieldName)
  13. {
  14.     var type = typeof(T);
  15.     var evnt = type.GetEvent(eventName, AllBindingFlags);
  16.     FieldInfo field = type.GetField(fieldName, AllBindingFlags);
  17.  
  18.     if (evnt == null || field == null) // you've mistyped the event and field name.
  19.         return;
  20.     Delegate dele = field.GetValue(item) as Delegate;
  21.            
  22.     if (dele == null)  // no attached delegates.
  23.         return;
  24.     evnt.RemoveEventHandler(item, dele);
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement