Développement d'un module de formatage de contenu personnalisé

Notification Services fournit un module de formatage de contenu intégré basé sur XSLT (Extensible Stylesheet Transformation Language) pour vous aider à développer rapidement des applications. Si toutefois vous souhaitez formater vos données de notification en utilisant d'autres techniques, vous devez développer un module de formatage de contenu personnalisé.

Interface IContentFormatter

Les modules de formatage de contenu sont des composants qui prennent des données de notification brutes en entrée et qui retournent des messages de notification formatés. Ils sont chargés par le serveur de distribution qui est hébergé par le moteur de Notification Services. Le serveur de distribution interagit avec eux par le biais d'une interface appelée IContentFormatter.

Pour développer un module de formatage de contenu personnalisé, vous devez développer une classe qui implémente l'interface IContentFormatter. Cette interface est disponible dans l'espace de noms Microsoft.SqlServer.NotificationServices.

Le serveur de distribution appelle le module de formatage de contenu pour chaque message à formater. Ce message peut prendre la forme d'une notification, d'un résumé de notifications ou de données de notification d'un message en multidiffusion.

Le serveur de distribution appele d'abord Initialize, puis FormatContent pour chaque message à formater et, enfin, la méthode Close lorsque l'élément de travail est terminé. La méthode FormatContent n'est pas rappelée tant que la méthode Initialize n'est pas appelée en premier.

En cas d'échec du formatage, la méthode FormatContent peut lever une exception. Le serveur de distribution inscrit l'exception au journal des applications et marque la notification comme ayant échoué. La notification défaillante n'est pas envoyée au protocole de remise. Si la classe de notification est configurée pour réessayer les notifications, la notification est choisie pour le formatage dans l'intervalle de reprise suivant.

Les méthodes Initialize et Close ne doivent jamais lever d'exceptions.

Vous devez implémenter votre module de formatage de contenu personnalisé en tant que classe dans un assembly de code managé. Cet assembly peut résider n'importe où, à condition que l'application de notification puisse y accéder.

Formatage des notifications

Lorsque le serveur de distribution initialise le module de formatage de contenu en appelant la méthode Initialize, il passe tous les arguments déclarés ainsi que le paramètre de remise de type digest. L'implémentation du module de formatage de contenu doit utiliser ces valeurs pour sa configuration et pour stocker les paramètres qu'il utilisera. Lorsque le serveur de distribution appelle le module de formatage de contenu pour formater un message de notification, il appelle la méthode FormatContent et passe un tableau des tables de hachage contenant des données de notification au module de formatage de contenu. Les données de notification incluent les paramètres régionaux et le type de périphérique de l'abonné.

En fonction de votre application, il est possible que votre implémentation du module de formatage de contenu doive gérer le formatage des notifications de type digest, de plusieurs périphériques et de plusieurs paramètres régionaux.

Utilisation d'un module de formatage de contenu personnalisé

Pour utiliser un module de formatage de contenu personnalisé, vous devez le déclarer dans la définition d'application. Lorsque vous déclarez un module de formatage de contenu, vous fournissez le nom de classe, le nom d'assembly, ainsi que les noms et les valeurs de tous les arguments requis pour initialiser le module de formatage de contenu. Pour plus d'informations, consultez Configuration des modules de formatage de contenu.

ms166410.note(fr-fr,SQL.90).gifImportant :
Votre module de formatage de contenu personnalisé s'exécute avec les mêmes privilèges que ceux du serveur de distribution, qui est exécuté par le moteur de Notification Services. Le compte sous lequel le moteur de Notification Services s'exécute doit disposer d'une autorisation d'accès à l'assembly.

Voir aussi

Concepts

Considérations relatives à sécurité de Notification Services

Autres ressources

Module de formatage de contenu XSLT
Développement de composants Notification Services personnalisés

Aide et Informations

Assistance sur SQL Server 2005