Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/11 9:27:49
C#教程:注册COM+服务组件应用实例

C#教程:注册COM+服务组件应用实例

注册COM+服务组件

在.NET中使用COM+服务的组件就叫做.NET服务组件,该组件跟一般的组件不同,区别在于前者使用了COM+服务。使用.NET服务组件的目的是为了可以访问COM+服务的一些基类,如ServicedComponent和自动事务处理,JIT,对象池和安全性等。

在使用.NET服务组件之前必须注册服务组件,注册COM+服务组件有3种方式,如下所示。

1.手动注册

通过RegSvcs命令行工具来注册,步骤如下所示。

(1)选择“开始”/“所有程序”/“Microsoft .NET Framework SDK v2.0”/“SDK命令提示”,如图1所示。



图1 选择SDK命令提示

(2)在弹出的“SDK命令提示”窗口中使用RegSvcs命令行工具来注册,将产生一个yourcomponent.tlb类型库,包含了对象的类型信息。例如:

Regsvcs /c Comdll.dll

注意:在使用该命令前必须先注册一个yourcomponent的强名称。

(3)选择“控制面板”/“管理工具”/“组件服务器”来查看COM+组件是否添加到服务器上,如图2所示。

2.编程注册

使用RegistrationHelper类,主要是利用在IregistrationHelper接口中的方法,如表1所示。



图2 将组件添加到COM+服务器上



表1 IregistrationHelper接口中的方法及说明

下面对这两个方法进行详细介绍。

(1)IRegistrationHelper.InstallAssembly方法。

语法:

void InstallAssembly (

[InAttribute] string assembly,

[InAttribute] out string application,

[InAttribute] out string tlb,

[InAttribute] InstallationFlags installFlags

)

参数说明如下。

assembly:作为文件的程序集名称或者全局程序集缓存(GAC)中的程序集的强名称。

application:应用程序参数可以是空引用(在Visual Basic中为Nothing)。如果确实是该设置,则基于程序集的名称或ApplicationName属性自动生成应用程序的名称。如果应用程序包含ApplicationID属性,则此属性优先。

tlb:输出类型库(TLB)文件的名称;如果应由注册帮助器生成该名称,则为包含空引用(在Visual Basic中为Nothing)的字符串。在调用完成后,所用的实际名称将放置在该参数中。

installFlags:在枚举中指定的安装选项。

(2)IRegistrationHelper.UninstallAssembly方法。

语法:

void UninstallAssembly (

[InAttribute] string assembly,

[InAttribute] string application

)

参数说明如下。

assembly:作为文件的程序集名称或者全局程序集缓存(GAC)中的程序集的强名称。

application:COM+应用程序的名称。

3.动态注册

在执行应用程序过程中,检查安装组件的版本,如组件的正确版本没有安装,则在运行时自动安装需要的版本,即自动注册。

注意:调用自动注册的用户必须是Window 2000管理组中的一个成员,因为动态注册无法改变COM+目录,否则注册过程失败。




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759