예제 #1
0
        public void AddEvent(string eventName, InstallerEventHandler instEventHandler)
        {
            lock (_eventTable)
            {
                if (!_eventTable.ContainsKey(eventName))
                {
                    _eventTable[eventName] = new List <InstallerEventHandler>();
                }
                //add event name to the table
                _eventTable[eventName].Add(instEventHandler);
#if DEBUG
                Logger.GetLogger().Info("Adding to event " + eventName + " the method " + instEventHandler.Method.DeclaringType.Name + "." + instEventHandler.Method.Name);
#endif
            }
        }
예제 #2
0
        public void RemoveEvent(string eventName, InstallerEventHandler instEventHandler = null)
        {
            lock (_eventTable)
            {
                if (instEventHandler == null)
                {
                    _eventTable.Remove(eventName);
#if DEBUG
                    Logger.GetLogger().Info("Removing from event " + eventName + " all methods.");
#endif
                }

                else
                {
                    _eventTable[eventName].Remove(instEventHandler);
#if DEBUG
                    Logger.GetLogger().Info("Removing from event " + eventName + " the method " + instEventHandler.Method.DeclaringType.Name + "." + instEventHandler.Method.Name);
#endif
                }
            }
        }