Llenar una lista de canal de entrega
Si la aplicación es compatible con varios canales de entrega, por ejemplo, un canal de entrega basado en el correo electrónico y un canal de entrega de Windows Messenger, puede proporcionar una lista de canales de entrega de modo que los suscriptores puedan crear dispositivos de suscriptor y, a continuación, seleccionar esos dispositivos para suscripciones individuales.
En SQL Server 2005, el modelo de objetos de Notification Services (NMO) proporciona clases para enumerar propiedades de instancia y de aplicación. Para enumerar canales de entrega, utilice la propiedad DeliveryChannels de la instancia para obtener la colección de canales de entrega definidos para la instancia de Notification Services. Las clases del NMO se encuentran en el espacio de nombres Microsoft.SqlServer.Management.Nmo, que está en el ensamblado Microsoft.SqlServer.Smo.
Es posible que no todos los canales de entrega ofrecidos en una instancia de Notification Services sean apropiados para todas las aplicaciones. Asegúrese de que la interfaz de usuario ofrece sólo aquellos canales de entrega que son válidos para la aplicación.
Ejemplo de código administrado
En el ejemplo de código siguiente se muestra cómo utilizar la propiedad DeliveryChannels de la instancia para obtener la colección de canales de entrega definidos para la instancia de Notification Services:
[!NOTA] El ejemplo siguiente requiere una referencia al ensamblado Microsoft.SqlServer.Management.Smo. Los espacios de nombres Microsoft.SqlServer.Management.Nmo y Microsoft.SqlServer.Management.Smo se encuentran en el ensamblado SMO. Para designar los espacios de nombres de las clases, en este ejemplo se utilizan los alias de espacio de nombres
nmo
ysmo
.
Utilice las siguientes directivas using
cuando ejecute este ejemplo:
using System;
using Microsoft.SqlServer.NotificationServices;
using nmo = Microsoft.SqlServer.Management.Nmo;
using smo = Microsoft.SqlServer.Management.Smo;
A continuación, utilice el código siguiente para enumerar los canales de entrega:
// 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);
}
Ejemplo de interoperabilidad COM
NMO no es compatible con la interoperabilidad COM. Si necesita utilizar interoperabilidad COM para enumerar los canales de entrega, debe utilizar la clase obsoleta DeliveryChannel y DeliveryChannelEnumeration del espacio de nombres Microsoft.SqlServer.NotificationServices para obtener la colección de canales de entrega definidos para la instancia 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!"
Vea también
Conceptos
Crear un objeto SubscriberDevice
Agregar un dispositivo de suscriptor
Actualizar un dispositivo de suscriptor
Eliminar un dispositivo de suscriptor