Share via


Renseignement d'une liste de canaux de remise

Si votre application prend en charge plusieurs canaux de remise, tels qu'un canal de remise par messagerie électronique et un canal de remise par Windows Messenger, vous pouvez fournir une liste de canaux de remise afin que des abonnés puissent créer des périphériques d'abonné et sélectionner ceux-ci pour des abonnements individuels.

Dans SQL Server 2005, le modèle NMO (Notification Services Object Model) fournit des classes pour l'énumération des propriétés d'instance et d'application. Pour énumérer des canaux de remise, utilisez la propriété DeliveryChannels de l'instance pour obtenir la collection de canaux de remise définis pour l'instance de Notification Services. Les classes NMO se trouvent dans l'espace de noms Microsoft.SqlServer.Management.Nmo faisant partie de l'assembly Microsoft.SqlServer.Smo.

Il est possible que les canaux de remise offerts dans une instance Notification Services ne soient pas tous adéquats pour l'ensemble de vos applications. Assurez-vous que votre interface utilisateur offre uniquement les canaux de remise valides pour l'application.

Exemple de code managé

L'exemple de code suivant montre l'utilisation de la propriété DeliveryChannels de l'instance pour obtenir la collection de canaux de remise définis pour l'instance de Notification Services :

ms166392.note(fr-fr,SQL.90).gifRemarque :
L'exemple suivant nécessite une référence à l'assembly Microsoft.SqlServer.Management.Smo. Les espaces de noms Microsoft.SqlServer.Management.Nmo et Microsoft.SqlServer.Management.Smo appartiennent tous les deux à l'assembly SMO. Pour désigner les espaces de noms des classes, cet exemple utilise les alias d'espaces de noms nmo et smo.

Utilisez les directives using suivantes lors de l'exécution de cet exemple :

using System;
using Microsoft.SqlServer.NotificationServices;
using nmo = Microsoft.SqlServer.Management.Nmo;
using smo = Microsoft.SqlServer.Management.Smo;

Utilisez ensuite le code ci-après pour énumérer les canaux de remise :

// Specify the Database Engine instance that hosts the 
// Notificaiton Services instance and get a reference to 
// the NotificationServices object.
smo.Server server = new smo.Server("MyServer");
nmo.NotificationServices notificationServices = server.NotificationServices;

// Get the Notification Services instance.
nmo.Instance nsinst = notificationServices.Instances ["Tutorial"];

// Get the instance's collection of delivery channels.
nmo.DeliveryChannelCollection dcCollection = nsinst.DeliveryChannels;

// Enumerate the delivery channels.
foreach (nmo.DeliveryChannel dc in dcCollection)
{
    Console.WriteLine(dc.Name);
}

Exemple COM Interop

NMO ne prend pas en charge COM Interop. Si vous devez utiliser COM Interop pour énumérer des canaux de remise, vous devez utiliser la classe DeliveryChannel et DeliveryChannelEnumeration désapprouvée à partir de l'espace de noms Microsoft.SqlServer.NotificationServices pour obtenir la collection de canaux de remise définis pour l'instance de Notification Services :

Dim testInstance, testDeliveryChannelEnumeration
const instanceName = "Tutorial"

' Create the NSInstance object.
set testInstance = WScript.CreateObject( _ 
"Microsoft.SqlServer.NotificationServices.NSInstance")
testInstance.Initialize instanceName

' Create the DeliveryChannelEnumeration object.
set testDeliveryChannelEnumeration = WScript.CreateObject( _ 
"Microsoft.SqlServer.NotificationServices.DeliveryChannelEnumeration")
testDeliveryChannelEnumeration.Initialize (testInstance)

' Step through the enumeration, printing the 
' delivery channel names.
for each channel in testDeliveryChannelEnumeration
    Wscript.Echo "Delivery Channel: ", _ 
        channel.DeliveryChannelName
next

wscript.echo "Done!"

Voir aussi

Concepts

Création d'un objet SubscriberDevice
Ajout d'un périphérique d'abonné
Mise à jour d'un périphérique d'abonné
Suppression d'un périphérique d'abonné

Autres ressources

NSSubscriberDeviceView

Aide et Informations

Assistance sur SQL Server 2005