Я хочу переопределить событие Elapsed по умолчанию для класса System.Timers.Timer, чтобы при необходимости можно было легко удалить все прослушиватели событий. Используя ответ Хорхе из этого вопроса, я получил следующий
class CustomTimer : System.Timers.Timer {
List<ElapsedEventHandler> delegates = new List<ElapsedEventHandler>();
private new event ElapsedEventHandler _elapsed;
public new event ElapsedEventHandler Elapsed {
add {
_elapsed += value;
delegates.Add(value);
}
remove {
_elapsed -= value;
delegates.Remove(value);
}
}
public void RemoveAllEvents() {
foreach (ElapsedEventHandler e in delegates) {
_elapsed -= e;
}
delegates.Clear();
}
}
Когда я запускаю службу, в которой он выполняется, я могу проследить, чтобы увидеть, что частный член Elapsed назначается. Однако я не могу увидеть обработчик события на самом деле. Я правильно настроил?