填充传递通道列表
如果应用程序支持多个传递通道(如基于电子邮件的传递通道和 Windows Messenger 传递通道),则可提供一个传递通道列表,以便订阅方可以创建订阅方设备,然后为单个订阅选择这些订阅方设备。
在 SQL Server 2005 中,Notification Services 对象模型 (NMO) 可为枚举实例和应用程序属性提供类。若要枚举传递通道,请使用实例的 DeliveryChannels 属性来获取为 Notification Services 实例定义的传递通道集合。NMO 类在 Microsoft.SqlServer.Management.Nmo 命名空间中,该命名空间在 Microsoft.SqlServer.Smo 程序集中。
有可能并非所有在 Notification Services 实例中提供的传递通道都适合您的所有应用程序。请确保用户界面仅提供对应用程序有效的传递通道。
托管代码示例
以下代码示例显示如何使用实例的 DeliveryChannels 属性来获得为 Notification Services 实例定义的传递通道集合:
注意: |
---|
以下示例要求引用 Microsoft.SqlServer.Management.Smo 程序集。Microsoft.SqlServer.Management.Nmo 和 Microsoft.SqlServer.Management.Smo 命名空间在 SMO 程序集中。为了指定类的命名空间,此示例使用了 nmo 和 smo 命名空间别名。 |
运行此示例时,请使用以下 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 命名空间,但已不推荐使用的 DeliveryChannel 和 DeliveryChannelEnumeration 类,来获得为 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 对象
添加订阅方设备
更新订阅方设备
删除订阅方设备