次の方法で共有


配信チャネル一覧の作成

アプリケーションで電子メール ベースの配信チャネルや Windows Messenger 配信チャネルなどの複数の配信チャネルをサポートする場合は、サブスクライバがサブスクライバ デバイスを作成して各サブスクリプションのサブスクライバ デバイスを選択できるように配信チャネルの一覧を作成します。

SQL Server 2005 では、Notification Services オブジェクト モデル (NMO) がインスタンスとアプリケーション プロパティを列挙するためのクラスを提供します。配信チャネルを列挙するためには、インスタンスの DeliveryChannels プロパティを使用して、Notification Services インスタンスに対して定義されている配信チャネルのコレクションを取得します。NMO クラスは、Microsoft.SqlServer.Smo アセンブリ内の Microsoft.SqlServer.Management.Nmo 名前空間にあります。

Notification Services インスタンスで提供されるすべての配信チャネルが、すべてのアプリケーションに適切であるとは限りません。ユーザー インターフェイスでは、アプリケーションに有効な配信チャネルだけが提供されるようにしてください。

マネージ コードの例

次のコード例は、Notification Services インスタンスに対して定義されている配信チャネルのコレクションを取得するためのインスタンスの DeliveryChannels プロパティの使用方法を示しています。

ms166392.note(ja-jp,SQL.90).gifメモ :
次のサンプルでは、Microsoft.SqlServer.Management.Smo アセンブリへの参照が必要です。Microsoft.SqlServer.Management.NmoMicrosoft.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 相互運用の例

NMO は、COM 相互運用をサポートしません。配信チャネルを列挙するために COM 相互運用を使用する必要がある場合は、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 の参考資料の入手