Sviluppo di un formattatore del contenuto personalizzato
Notification Services include un formattatore del contenuto predefinito basato sulla tecnologia XSLT (Extensible Stylesheet Transformation Language) che consente di sviluppare rapidamente applicazioni. Se si desidera formattare i dati delle notifiche tramite altre tecniche, è necessario sviluppare un formattatore del contenuto personalizzato.
Interfaccia IContentFormatter
I formattatori del contenuto sono componenti che accettano i dati delle notifiche non elaborati come input e restituiscono messaggi di notifica formattati. I formattatori del contenuto vengono caricati dal server di distribuzione, ospitato dal motore di Notification Services. Il server di distribuzione interagisce con i formattatori del contenuto tramite l'interfaccia IContentFormatter.
Per sviluppare un formattatore del contenuto personalizzato, è necessario sviluppare una classe che implementa l'interfaccia IContentFormatter. Questa interfaccia è disponibile nello spazio dei nomi Microsoft.SqlServer.NotificationServices.
Il server di distribuzione chiama il formattatore del contenuto per ogni messaggio da formattare. Il messaggio può essere una notifica, un digest di notifiche o i dati di notifica di un messaggio multicast.
Il server di distribuzione chiama innanzitutto Initialize, quindi FormatContent per ogni messaggio da formattare, e, al termine, chiama il metodo Close. Il metodo FormatContent non viene chiamato una seconda volta, a meno che non venga chiamato prima il metodo Initialize.
Se la formattazione non viene eseguita correttamente, il metodo FormatContent può generare un'eccezione. Il server di distribuzione registra l'eccezione nel registro applicazioni e contrassegna la notifica come non riuscita. Tale notifica non verrà inviata al protocollo di recapito. Se la classe di notifica è configurata per ritentare l'invio delle notifiche, la notifica non riuscita viene sottoposta nuovamente alla formattazione nel successivo intervallo.
I metodi Initialize e Close non devono mai generare eccezioni.
È necessario implementare un formattatore del contenuto personalizzato come classe in un assembly di codice gestito. Questo assembly può trovarsi in una posizione qualsiasi accessibile per l'applicazione di notifica.
Formattazione delle notifiche
Quando il server di distribuzione inizializza il formattatore del contenuto chiamando il metodo Initialize, passa tutti gli argomenti dichiarati e l'impostazione di recapito digest. L'implementazione del formattatore del contenuto deve utilizzare questi valori per la propria configurazione e per memorizzare le impostazioni da utilizzare. Quando il server di distribuzione chiama il formattatore del contenuto per formattare un messaggio di notifica, chiama il metodo FormatContent e passa una matrice di tabelle hash contenenti i dati di notifica al formattatore del contenuto. Tali dati includono le impostazioni internazionali e il tipo di dispositivo del sottoscrittore.
A seconda dell'applicazione in uso, l'implementazione del formattatore del contenuto potrebbe richiedere la gestione della formattazione delle notifiche digest, di più dispositivi e di diverse impostazioni internazionali.
Utilizzo di un formattatore del contenuto personalizzato
Per utilizzare un formattatore del contenuto personalizzato, è necessario dichiararlo nella definizione dell'applicazione. Quando si dichiara un formattatore del contenuto, si specifica il nome della classe, quello dell'assembly e i nomi e i valori di tutti gli argomenti necessari per inizializzare il formattatore del contenuto. Per ulteriori informazioni, vedere Configurazione dei formattatori del contenuto.
Importante: |
---|
Il formattatore del contenuto personalizzato viene eseguito con gli stessi privilegi del server di distribuzione, che viene eseguito dal motore di Notification Services. L'account utilizzato per l'esecuzione del motore di Notification Services deve disporre delle autorizzazioni necessarie per accedere all'assembly. |
Vedere anche
Concetti
Considerazioni sulla protezione per Notification Services
Altre risorse
Formattatore del contenuto XSLT
Sviluppo di componenti personalizzati di Notification Services