Share via


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 y smo.

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

Otros recursos

NSSubscriberDeviceView

Ayuda e información

Obtener ayuda sobre SQL Server 2005