19-NET类库注册为COM组件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

文档编号版本号在STARLIMSv10中调用.NET类库2006年1月12日在STARLIMSv10中调用.NET类库北京三维天地科技有限公司电话:010-82856868传真:010-82856820地址:北京市海淀区中关村大街27号中关村大厦11层邮编:100080网址:电子邮件:market@sunwayworld.com2版本历史:版本作者日期备注吕中华2005年1月12日项目开发小组:姓名职务职责在STARLIMSv10中调用.NET类库北京三维天地科技有限公司电话:010-82856868传真:010-82856820地址:北京市海淀区中关村大街27号中关村大厦11层邮编:100080网址:电子邮件:market@sunwayworld.com3目录概述..................................................................................................................................................41编写C#类库..................................................................................................................................41.1新建类库工程OleTest....................................................................................................41.2用SN工具生成程序集密钥签名文件.............................................................................51.3修改类库工程的AssemblyInfo.cs文件.......................................................................61.4程序的编写.......................................................................................................................71.4.1Calculator类......................................................................................................71.4.2FormStatus类......................................................................................................92将类库OleTest注册为COM......................................................................................................103在v10中调用OleTest类库.....................................................................................................103.1调用Calculator类.......................................................................................................103.2调用FormStatus类.......................................................................................................124运行结果.....................................................................................................................................134.1CalcuTest运行结果......................................................................................................134.2StatusTest运行结果....................................................................................................13在STARLIMSv10中调用.NET类库北京三维天地科技有限公司电话:010-82856868传真:010-82856820地址:北京市海淀区中关村大街27号中关村大厦11层邮编:100080网址:电子邮件:market@sunwayworld.com4概述在STARLIMSv10中,可以在ClientSript中通过ActiveXObject函数(相当于STARLIMSv9的LimsOLEConnect)调用传统的COM组件对象,通过这种方式,v10可以与第三方软件进行交互。但是如果第三方软件或自开发组件是在.NET平台上开发的,不是传统的COM控件,这就需要先将.NET组件(类库)注册为传统的COM组件。下面文档描述的是实现用v10来调用一个C#语言开发的一个类库的过程。1编写C#类库我们用C#编写一个类库OleTest,这个类库很简单,只包含两个类:Calculator,FormStatus。下面是这个类库的结构:+Show():void+ShowDialog():void+Status:stringFormStatus+Add(inx:int,iny:int):int+Sub(inx:int,iny:int):int+Mul(inx:int,iny:int):int+Div(inx:int,iny:int):floatCalculator库OleTest1.1新建类库工程OleTest启动VisualStudio2003集成开发环境,打开“新建项目”对话框,选择“VisualC#项目”,选中“类库”,将“名称”改为“OleTest”,点击“浏览”按钮,选择合适的工程文件加,点击“确定”,新建类库工程,如下页图1:在STARLIMSv10中调用.NET类库北京三维天地科技有限公司电话:010-82856868传真:010-82856820地址:北京市海淀区中关村大街27号中关村大厦11层邮编:100080网址:电子邮件:market@sunwayworld.com5图1:新建类库OleTest1.2用SN工具生成程序集密钥签名文件如果要将.NET类库注册成传统的COM组件,需要利用Regasm工具(在《亚东STARLIMSv9与SAP系统之间数据接口的解决方案.doc》文档中详细介绍过)。在用Regasm工具将.NET类库注册为“强名称”的COM组件时,需要程序集密钥签名文件,利用.NETSDK自带的工具sn.exe工具可以生成该文件。sn.exe为一命令行工具,在Visualstudio2003的安装路径的SDK文件夹中可以找到这一工具。表1位该命令行工具的使用方法。命令格式:sn[-quiet][option[parameter(s)]]选项说明-c[csp]将默认加密服务提供程序(CSP)设置为用于强名称签名,此设置应用于整台计算机。如果不指定CSP名称,则sn.exe程序将清除当前设置。-dcontianer从强名称CSP中删除指定的密钥容器。-Dassemblyoutfile验证两个程序集是否只是签名不同。这经常用作使用不同的密钥对重新为程序集创建签名后的检查。-eassemblyoutfile从assembly中提取公钥并将其存储在outfile中。-h显示此工具的命令语法和选项-iinfilecontainer从指定密钥容器中的infile安装密钥对。密钥容器位于强名称CSP中。-koutfile生成一个新的密钥对并将其写入指定的文件。-m[y|n]指定密钥容器是计算机特定的还是用户特定的。如果指定y,则密钥容器是计算机特定的。如果指定n,则密钥容器是用户特定的。如果既没有指定y也没有指定n,则此选项显示当前设置。在STARLIMSv10中调用.NET类库北京三维天地科技有限公司电话:010-82856868传真:010-82856820地址:北京市海淀区中关村大街27号中关村大厦11层邮编:100080网址:电子邮件:market@sunwayworld.com6-oinfile[outfile]从infile中提取公钥并将其存储在.csv文件中。公钥的每一字节都由逗号分隔。这种格式对于通过硬编码在源代码中将公钥作为初始化数组引用很有用。如果不指定outfile,则此选项将输出放到剪切板上。-pinfileoutfile从infile中的密钥对提取公钥并将其存储在outfile中。-pccontaineroutfile从container中的密钥对中提取公钥并将其存储在outfile中。-q[uiet]指定安静模式;取消显示成功消息。-Rassemblyinfile使用infile中的密钥对,重新签名先前已签名的程序集或延迟已签名的程序集。-Rcassemblycontainer使用容器中的密钥对,重新签名先前已签名的程序集获延迟已签名的程序集。-t[p]infile显示存储在infile中的公钥的标记。以前必须使用-p生成了infile的内容。-T[p]assembly显示assembly的公钥标记。assembly必须是包含程序集清单的文件名。-vassembly验证assembly中的强名称,其中assembly是包含程序集清单的文件名。-vfassembly验证assembly中的强名称。与-v选项不同,-vf强制验证,即使使用-Vr选项禁用了验证。-Vl列出此计算机上的强名称验证的当前设置。-Vrassembly[userlist][infile]注册assembly以跳过验证。或者,可以指定用逗号分隔的用户名列表。如果指定infile,则验证保持启用,但infile中的公钥将用于验证操作。可以*,strongname的形式指定程序集,以注册所有具有制定强名称的程序集。-Vuassembly注销assembly,不跳过验证。-Vx移除所有验证跳过项。-?显示此工具的命令语法和选项。表1:sn的使用方法所有的sn.exe选项都区分大小写。我们利用sn.exe为我们的OleTest程序集创建一个新的随机密钥对并将其存储在工程文件夹的key.snk文件中,命令如下:Sn.exe–kF:\工作文件夹\工作日志\0109-0113\OleTest\key.snk文件key.snk创建成功。1.3修改类库工程的AssemblyInfo.cs文件.NET程序集的配置一般都放在工程的AssemblyInfo.cs文件中。AssemblyInfo.cs文件可以通过“解决方案资源管理器”可以

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功