Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/11 9:27:49 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+目录,否则注册过程失败。
赞