填充传递通道列表

如果应用程序支持多个传递通道(如基于电子邮件的传递通道和 Windows Messenger 传递通道),则可提供一个传递通道列表,以便订阅方可以创建订阅方设备,然后为单个订阅选择这些订阅方设备。

在 SQL Server 2005 中,Notification Services 对象模型 (NMO) 可为枚举实例和应用程序属性提供类。若要枚举传递通道,请使用实例的 DeliveryChannels 属性来获取为 Notification Services 实例定义的传递通道集合。NMO 类在 Microsoft.SqlServer.Management.Nmo 命名空间中,该命名空间在 Microsoft.SqlServer.Smo 程序集中。

有可能并非所有在 Notification Services 实例中提供的传递通道都适合您的所有应用程序。请确保用户界面仅提供对应用程序有效的传递通道。

托管代码示例

以下代码示例显示如何使用实例的 DeliveryChannels 属性来获得为 Notification Services 实例定义的传递通道集合:

ms166392.note(zh-cn,SQL.90).gif注意:
以下示例要求引用 Microsoft.SqlServer.Management.Smo 程序集。Microsoft.SqlServer.Management.NmoMicrosoft.SqlServer.Management.Smo 命名空间在 SMO 程序集中。为了指定类的命名空间,此示例使用了 nmosmo 命名空间别名。

运行此示例时,请使用以下 using 指令:

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

然后,使用以下代码来枚举传递通道:

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

COM Interop 示例

NMO 不支持 COM interop。如果您需要使用 COM interop 来枚举传递通道,则必须使用来自 Microsoft.SqlServer.NotificationServices 命名空间,但已不推荐使用的 DeliveryChannelDeliveryChannelEnumeration 类,来获得为 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!"

请参阅

概念

创建 SubscriberDevice 对象
添加订阅方设备
更新订阅方设备
删除订阅方设备

其他资源

NSSubscriberDeviceView

帮助和信息

获取 SQL Server 2005 帮助