Desarrollar un formateador de contenido personalizado

Notification Services proporciona un formateador de contenido integrado basado en XSLT (Extensible Stylesheet Language Transformation) para ayudarle a desarrollar aplicaciones rápidamente. Sin embargo, si desea aplicar formato a los datos de notificaciones mediante otras técnicas, debe desarrollar un formateador de contenido personalizado.

Interfaz de IContentFormatter

Los formateadores de contenido son componentes que toman datos de notificaciones en un formato sin procesar y que devuelven mensajes de notificación con formato. Los formateadores de contenido son cargados por el distribuidor, que es alojado por el motor de Notification Services. El distribuidor interactúa con los formateadores de contenido mediante una interfaz denominada IContentFormatter.

Para desarrollar un formateador de contenido personalizado, debe desarrollar una clase que implemente la interfaz IContentFormatter. Esta interfaz está disponible en el espacio de nombres Microsoft.SqlServer.NotificationServices.

El distribuidor llama al formateador de contenido para cada mensaje al que se debe aplicar formato. Este mensaje podría ser una notificación, un resumen de notificaciones o los datos de la notificación para un mensaje de multidifusión.

El distribuidor llama primero a Initialize, a continuación, a FormatContent para cada mensaje al que se va a aplicar formato y, cuando el elemento de trabajo está completo, llama al método Close. Al método FormatContent no se le llama de nuevo a menos que se llame primero al método Initialize.

Si la aplicación de formato provoca errores, el método FormatContent puede emitir una excepción. El distribuidor registra la excepción en el registro de la aplicación y la marca como errónea. La notificación errónea no se envía al protocolo de entrega. Si la clase de notificación está configurada para reintentar notificaciones, la notificación se recupera para aplicarle formato en el siguiente intervalo de reintentos.

Los métodos Initialize y Close nunca deberían emitir excepciones.

Debe implementar su formateador de contenido personalizado como una clase de un ensamblado de código administrado. Este ensamblado puede residir en cualquier ubicación accesible a la aplicación de notificaciones.

Aplicar formato a notificaciones

Cuando el distribuidor inicializa el formateador de contenido al llamar al método Initialize, pasa cualquier argumento declarado y el valor de entrega de resumen. La implementación del formateador de contenido debería utilizar estos valores para configurarse y almacenar cualquier valor que vaya a utilizar. Cuando el distribuidor llama al formateador de contenido para aplicar formato a un mensaje de notificación, llama al método FormatContent y pasa una matriz de tablas hash que contienen datos de la notificación al formateador de contenido. Los datos de las notificaciones incluyen la configuración regional del suscriptor y el tipo de dispositivo.

Según la aplicación, puede que la implementación del formateador de contenido necesite controlar el formato de las notificaciones de resumen, varios dispositivos y varias configuraciones regionales.

Usar un formateador de contenido personalizado

Para usar un formateador de contenido personalizado, debe declararlo en la definición de la aplicación. Al declarar un formateador de contenido, proporciona el nombre de la clase, el nombre del ensamblado, y los nombres y valores de cualquier argumento necesario para inicializar el formateador de contenido. Para obtener más información, vea Configurar formateadores de contenido.

ms166410.note(es-es,SQL.90).gifImportante:
Su formateador de contenido personalizado se ejecuta con los mismos privilegios que el distribuidor, que es ejecutado por el motor de Notification Services. La cuenta en la que se ejecuta el motor de Notification Services debe tener permiso de acceso al ensamblado.

Vea también

Conceptos

Consideraciones de seguridad para Notification Services

Otros recursos

Formateador de contenido XSLT
Desarrollar componentes personalizados de Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005