开发自定义内容格式化程序

为帮助快速开发应用程序,Notification Services 提供了一个基于可扩展样式表语言转换 (XSLT) 的内置内容格式化程序。但是,如果要使用其他技术格式化通知数据,就必须开发自定义内容格式化程序。

IContentFormatter 界面

内容格式化程序是一些组件,这些组件以原始格式的通知数据作为输入,然后返回格式化的通知消息。内容格式化程序由分发服务器载入,该分发服务器由 Notification Services 引擎承载。分发服务器通过名为 IContentFormatter 的接口与内容格式化程序进行交互。

若要开发自定义内容格式化程序,必须开发可实现 IContentFormatter 接口的类。此接口在 Microsoft.SqlServer.NotificationServices 命名空间中可用。

分发服务器为每个必须格式化的消息调用内容格式化程序。此消息可以是通知、通知摘要或多播消息的通知数据。

分发服务器首先调用 Initialize,然后为每条要格式化的消息调用 FormatContent。工作项完成之后,再调用 Close 方法。除非是第一次调用 Initialize 方法,否则将不再调用 FormatContent 方法。

如果格式化失败,FormatContent 方法可能会引发异常。分发服务器会将异常记录到应用程序日志中,并将通知标记为失败。失败的通知不会发送给传递协议。如果通知类被配置为重试通知,则会在下一个重试间隔中提取通知进行格式化。

InitializeClose 方法在任何情况下都不应引发异常。

必须以托管代码程序集中的类的形式实现自定义内容格式化程序。此程序集可驻留在通知应用程序可访问的任何位置。

格式化通知

如果分发服务器通过调用 Initialize 方法初始化了内容格式化程序,则它会传递任何已声明的参数和摘要传递设置。内容格式化程序应在实现时使用这些值来配置自己,并存储将要使用的任何设置。分发服务器调用内容格式化程序格式化通知消息时,会调用 FormatContent 方法,并向内容格式化程序传递包含通知数据的哈希表数组。通知数据包含订阅方区域设置和设备类型。

实现内容格式化程序时可能需要处理摘要通知的格式设置、处理多个设备和多个区域设置,这取决于不同的应用程序。

使用自定义内容格式化程序

若要使用自定义内容格式化程序,必须在应用程序定义中对其进行声明。声明内容格式化程序时,需要提供类名称、程序集名称和初始化内容格式化程序所需的参数的名称和值。有关详细信息,请参阅配置内容格式化程序

ms166410.note(zh-cn,SQL.90).gif重要提示:
自定义内容格式化程序的运行权限与分发服务器相同,由 Notification Services 引擎运行。运行 Notification Services 引擎的帐户必须有权访问程序集。

请参阅

概念

Notification Services 的安全注意事项

其他资源

XSLT 内容格式化程序
开发自定义 Notification Services 组件

帮助和信息

获取 SQL Server 2005 帮助