SharePoint中的Event Receivers 之一 Event Receiver基础
Event Receivers代表着一种开发扩展能力的机制, 通过它可以为列表和列表项等元素添加行为. Event Receiver是一个类, 包含一个或多个叫做"event handler"的, 被WSS自动执行的方法, 这些方法会响应事件, 比如说用户向列表添加一个column, 或者用户删除了一个列表项. Event hannler写好之后, 典型地被用在data validation上, 来确保数据完整性, 或者开启自定义的商业逻辑的处理.
被WSS支持的Event可以被分为两个种类: before events 和 after events.
before event会在动作执行完成之前被触发. 比如说, 当一个用户试图为列表添加一个新的column的时候, WSS触发一个FieldAdding的事件. 这就是所说的before event, 因为他在field被添加到List之前就触发了, 并且这个事件给了developer一个机会来提供event handler, 可以取消触发时间动作. Before event是在处理请求的thread中用blocking的方式同步地执行的. 正因为如此, before event常常被称为synchronous events.
after event不同, 因为它是在动作结束之后才被触发的, 它不提供给开发者机会来取消这个动作. 比如说WSS会触发一个ItemAdded的事件, 在一个Item被添加到列表的时候. 像这样的after event提供给开发者机会去写一个event handler来触发自定义的商业处理, 诸如重新格式化item的一个field的值. 注意, after event是nonblocking的, 因为他们是在另一个thread里异步地执行的. 正因为如此, after events常常被称作asynchronous events.
小提示: Event Receiver与WSS2.0中的Event Sink是相等同的概念, 尽管Event receiver能够被应用到任何一种类型的列表上, 而WSS 2.0 中的Event Sink只能应用到基于文档库的列表
译: