5

在 .Net 中,Component该类公开了一个Disposed事件。它还提供了一个受保护的成员OnDispose(bool disposing)

扩展自定义组件的最佳实践是什么Component?覆盖OnDispose(bool)或附加事件处理程序到Disposed构造?

我的感觉是,一个人应该超越OnDispose(bool)和封印班级。

想法?

4

3 回答 3

6

通常情况下,消费者会使用事件,以便在事件发生时通知他们。如果您正在扩展类型并需要清理资源,则应覆盖 Dispose(bool disposing)

Spence 关于事件处理程序部分是正确的,可以分配多个事件,但问题是您不能保证事件处理的顺序。

密封类通常取决于您的设计。

FxCop 规则也有一些很好的信息: http: //msdn.microsoft.com/en-us/library/ms244737 (VS.80).aspx

于 2009-01-19T01:50:43.170 回答
2

我建议覆盖该行为,因为您的组件的实现者可以访问事件处理程序,因此可能会意外取消注册您的处置器实现。我相信您可能还需要根据您的自定义组件正在执行的操作来执行此操作,因为如果您有状态对象或外部接口等,您可能需要在调用基本处置器之前运行您的处置任务。

于 2009-01-19T01:41:58.213 回答
1

正如我听说过的那样,它是一个 .Net 标准,继承者覆盖基类 OnXxxxx 方法,用户处理 Xxxxx 事件。

于 2010-01-11T16:36:53.633 回答