实现通知处理程序

上次修改时间: 2010年3月8日

适用范围: SharePoint Foundation 2010

通过在 IAlertNotifyHandler 接口中实现 OnNotification 函数,可以捕获通知事件。

通过在 IAlertUpdateHandler 中实现 PreUpdatePostUpdate 函数,可以捕获通知创建或修改事件。

重要注释重要信息

仅当用户已订阅电子邮件通知时,才会触发通知处理程序。当用户选择 SMS 通知时,不会触发通知处理程序。

实现通知处理程序

可以使用以下过程来实现通知处理程序。

实现通知处理程序

  1. 创建用于实现 IAlertNotifyHandlerIAlertUpdateHandler 接口的类

  2. 在全局程序集缓存中注册程序集。

  3. 通过按以下格式使用通知模板的 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。

请参阅

概念

SharePoint Foundation 中的通知