Condividi tramite


Popolamento di un elenco di canali di recapito

Se l'applicazione supporta più canali di recapito, come nel caso di un canale di recapito basato sulla posta elettronica e di un canale di recapito di Windows Messenger, è possibile includere un elenco di canali di recapito in modo che i sottoscrittori possano creare dispositivi di sottoscrizione e quindi selezionare questi ultimi per sottoscrizioni singole.

In SQL Server 2005, il modello di oggetti Notification Services (NMO) include classi per l'enumerazione delle proprietà delle istanze e delle applicazioni. Per enumerare i canali di recapito, utilizzare la proprietà DeliveryChannels dell'istanza per ottenere l'insieme dei canali di recapito definiti per l'istanza di Notification Services. Le classi NMO si trovano nello spazio dei nomi Microsoft.SqlServer.Management.Nmo, nell'assembly Microsoft.SqlServer.Smo.

È possibile che non tutti i canali di recapito disponibili in un'istanza di Notification Services siano adeguati per tutte le applicazioni. Verificare che l'interfaccia utente renda disponibili solo i canali di recapito validi per l'applicazione.

Esempio di codice gestito

Nell'esempio di codice seguente viene illustrato come utilizzare la proprietà DeliveryChannels dell'istanza per ottenere l'insieme dei canali di recapito definiti per l'istanza di Notification Services:

[!NOTA] L'esempio seguente richiede un riferimento all'assembly Microsoft.SqlServer.Management.Smo. Gli spazi dei nomi Microsoft.SqlServer.Management.Nmo e Microsoft.SqlServer.Management.Smo si trovano nell'assembly SMO. Per indicare gli spazi dei nomi delle classi, l'esempio utilizza gli alias degli spazi dei nomi nmo e smo.

Utilizzare le seguenti direttive using nell'esecuzione dell'esempio:

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

Quindi utilizzare il codice seguente per enumerare i canali di recapito:

// 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);
}

Esempio di interoperatività COM

NMO non supporta l'interoperatività COM. Se è necessario utilizzare l'interoperatività COM per enumerare i canali di recapito, utilizzare la classe DeliveryChannel e DeliveryChannelEnumeration obsoleta dallo spazio dei nomi Microsoft.SqlServer.NotificationServices per ottenere l'insieme dei canali di recapito definito per l'istanza di 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!"

Vedere anche

Concetti

Creazione di un oggetto SubscriberDevice
Aggiunta di un dispositivo del sottoscrittore
Aggiornamento di un dispositivo del sottoscrittore
Eliminazione di un dispositivo del sottoscrittore

Altre risorse

NSSubscriberDeviceView

Guida in linea e informazioni

Assistenza su SQL Server 2005