【发布时间】:2011-05-13 09:28:46
【问题描述】:
我有一个类,它有一个方法Register,它使用标准aClass.SomeEvent += the_handler 订阅它包含的类上的许多事件。此类还有一个Unregister 方法,该方法使用-= 取消订阅这些事件。这工作得很好,但我们发现如果我们添加一个新事件来订阅它很容易忘记在Unregister 中包含取消订阅。这种维护事件订阅的手动方法被证明是脆弱的。
有没有办法维护一个可以动态迭代和取消订阅的订阅列表? (并且在Unregister 之后调用Register 时可能会迭代并重新订阅)。
一些细节:该类引用了其他 3 个类(目前,但不限于 3 个),这些类上的各种事件都是 EventHandler 或 EventHandler<T> 类型。
【问题讨论】:
-
好问题。我也在使用手动分离
-
@Heandel 始终注册和注销所有事件。规则没有例外。
标签: c# events reflection