У меня есть класс с методом Register
, который подписывается на ряд событий в классах, которые он содержит, используя стандарт aClass.SomeEvent += the_handler
. Этот класс также имеет метод Unregister
, который отписывается от этих событий, используя -=
. Это прекрасно работает, но мы обнаруживаем, что если мы добавляем новое событие для подписки, очень легко забыть включить отписку в Unregister
. Этот ручной метод поддержки подписок на события оказывается хрупким.
Есть ли способ вести список подписок, который можно динамически перебирать и отменять? (И, возможно, выполнять итерацию и повторную подписку при вызове Register
после Unregister
).
Некоторые подробности: класс имеет ссылку на 3 других класса (в настоящее время, но не ограничен 3), различные события в этих классах имеют тип EventHandler
или EventHandler<T>
.