带有 Notification Services 的 COM Interop

所有 Notification Services API 都是使用托管代码开发的。但是,已开发的许多 Notification Services 类是要通过非托管代码以及 COM interop 使用的。如果要将 Notification Services 集成到现有的非托管应用程序中,则可能需要继续在订阅管理界面中使用非托管代码。COM interop 就是为此目的而提供的。

不支持 COM Interop 的命名空间

以下 Notification Services 命名空间中的类不支持 COM interop:

  • Microsoft.SqlServer.NotificationServices.Rules,在支持基于条件的订阅的订阅管理界面中使用该类。此命名空间在 Microsoft.SqlServer.NotificationServices.Rules.dll 程序集中。
  • Microsoft.SqlServer.Management.Nmo,可以将该类用于以编程方式定义 Notification Services 应用程序,以及用于配置、部署和管理 Notification Services 实例。此命名空间在 Microsoft.SqlServer.Smo.dll 程序集中。

Microsoft.SqlServer.NotificationServices 命名空间

Microsoft.SqlServer.NotificationServices 命名空间中的以下类至少部分支持 COM interop:

这些类都提供默认的构造函数和 Initialize 方法,用于以非托管代码创建和初始化对象。对于这些类中的重载方法,最广泛的是提供给 COM 调用方的重载。方法中的参数都是可选的,以提供对等功能。

如果安装了多个版本的 Notification Services,并且使用的是 COM interop,那么代码将使用最近安装的 Notification Services 版本中的 API。这不一定是最高版本的 Notification Services。之所以可能发生这种差异,是因为程序 ID(在 HKEY_CLASSES_ROOT 下)是 Microsoft.SqlServer.NotificationServices.NSInstance 窗体的 ID,并且始终指向最近安装的版本。

有关使用 COM interop 的详细信息,请参阅 Microsoft MSDN(R) 库中的 COM Interoperability in Visual Basic and Visual C#

请参阅

概念

Notification Services 体系结构
Notification Services 编程框架
Notification Services 部署选项

其他资源

生成通知解决方案
部署 Notification Services
管理 Notification Services

帮助和信息

获取 SQL Server 2005 帮助