public void unregisterHandler(string opname, standardEventHandler eventHandler) { if (null == eventHandler) { return; } List <standardEventHandler> listHandler = null; if (_dicEventHandlers.ContainsKey(opname)) { listHandler = _dicEventHandlers[opname]; } if (null == listHandler) { return; } listHandler = new List <standardEventHandler>(); listHandler.Remove(eventHandler); }
public void postNotification(string opname, object sender, NotifyEventArgs e) { if (_dicEventHandlers.ContainsKey(opname)) { List <standardEventHandler> listHandler = _dicEventHandlers[opname]; // notification실행 도중 unregister호출하는 경우에 대비하기 위해 foreach --> for 수정(예: GraphicHTMLTextBox); int cnt = listHandler.Count; for (int i = cnt - 1; i >= 0; i--) { standardEventHandler handler = listHandler[i]; try { handler(sender, e); } catch (Exception ex) { string st = "event save exception : " + ex.ToString(); Console.WriteLine(st); Console.WriteLine(ex); } } } }
public void registerHandler(string opname, standardEventHandler eventHandler) { if (null == eventHandler) { return; } List <standardEventHandler> listHandler = null; if (_dicEventHandlers.ContainsKey(opname)) { listHandler = _dicEventHandlers[opname]; } if (null == listHandler) { listHandler = new List <standardEventHandler>(); _dicEventHandlers.Add(opname, listHandler); } if (!listHandler.Contains(eventHandler)) { listHandler.Add(eventHandler); } }
public void unregisterHandler <T>(standardEventHandler eventHandler) => registerHandler(typeof(T).Name, eventHandler);