实现通知处理程序
上次修改时间: 2010年3月8日
适用范围: SharePoint Foundation 2010
通过在 IAlertNotifyHandler 接口中实现 OnNotification 函数,可以捕获通知事件。
通过在 IAlertUpdateHandler 中实现 PreUpdate 和 PostUpdate 函数,可以捕获通知创建或修改事件。
重要信息 |
---|
仅当用户已订阅电子邮件通知时,才会触发通知处理程序。当用户选择 SMS 通知时,不会触发通知处理程序。 |
实现通知处理程序
可以使用以下过程来实现通知处理程序。
实现通知处理程序
创建用于实现 IAlertNotifyHandler 和 IAlertUpdateHandler 接口的类
在全局程序集缓存中注册程序集。
通过按以下格式使用通知模板的 Properties 元素,可将通知模板连接到处理程序:
<Properties> <NotificationHandlerAssembly> Handler assembly strong name </NotificationHandlerAssembly> <NotificationHandlerClassName> Fully qualified class name </NotificationHandlerClassName> <NotificationHandlerProperties> Other option properties you want to pass </NotificationHandlerProperties> <UpdateHandlerAssembly> Assembly </UpdateHandlerAssembly> <UpdateHandlerClassName> Class name </UpdateHandlerClassName> <UpdateHandlerProperties> Other properties </UpdateHandlerProperties> </Properties>
通知模板存储在 AlertTemplates.xml 和 AlertTemplates_SMS.xml 中。这些模板用于定义创建各列表类型的通知消息时所用的格式、内容和属性。开发人员可以自定义通知,方法是:修改其中一个或两个文件的副本,然后使用命令 stsadm -o updatealerttemplates 加载自定义的通知模板。
备注
请勿修改 AlertTemplates.xml 或 AlertTemplates_SMS.xml。这些文件在安装 Service Pack 时可能会被覆盖。若要进行更改,请制作其中一个或两个文件的副本,编辑该副本,然后调用一次或两次 stsadm -o updatealerttemplates 命令,用您所做的更改覆盖原始模板。所做的更改存储在 SharePoint Foundation 配置数据库中。有关详细信息,请参阅通知概述和 AlertTemplates 架构。
重要信息 |
---|
如果在 Format 元素外部对给定 SPAlertTemplateType.* 模板进行更改,则必须对相应的 SPSmsAlertTemplateType.* 模板进行相同的更改。 |
捕获事件
若要在触发通知时捕获事件,请实现 IAlertNotifyHandler。在触发通知时,会调用 IAlertNotifyHandler.OnNotification。将 SPAlertHandlerParams 对象传递给该函数。然后,使用 SendEmail 之类的电子邮件发送方法或 SendMessage(String) 之类的短信发送方法来发送消息。
若要在创建新通知或更新通知时捕获事件(以便可以更改其属性或设置新属性),请实现 IAlertNotifyHandler 接口。在将对通知所做的更改提交到数据库之前,将调用 PreUpdate;在提交所做的更改之后,将调用 PostUpdate。
备注
当实现 IAlertNotifyHandler 时,不得访问 SPAlertCollection 或修改 SPAlert 对象,并在访问该接口之前,始终测试 SPAlert 属性是否为 null。