小喵撰写COM+组件开始于VB6的年代,撰写与注册的方式还算不是很复杂,不过随着进入了.NET的世界,撰写的过程也变得比较复杂了许多。
以下是撰写的步骤
假设要撰写的是一个数据库DDMO中的数据表(TDMOMenu)的数据存取组件,要产生一个组件服务中的Package名称为【KDMO1000】,里面有个组件PDMOMenu.dll内有两个COM+组件分别是
Project.Class
- PDMOMenu.CDMOMenu1(无Transaction):用以读取数据
- PDMOMenu.CDMOMenu2(有Transaction):用以维护数据
撰写步骤:
- 建专案:
- 请在适当的目录下,建立您组件项目的目录【PDMOMenu】
- 建立项目(Create Project),选择【类别库(Class Library)】,目录请设定为您项目的目录,Name设定为【PDMOMenu】
- 方案总管(Solution Explorer)中点选Class1.vb,变更属性(Properties)中的檔名(File Name)为【CDMOMenu1.vb】(无TranSaction),【CDMOMenu2.vb】(有Transaction)
- 参考(Reference)右键→加入参考,增加【System.EnterpriseServices】
- 项目内容:
- 点选项目(Project)右键→属性(Properties)
- 点选【签署(Signing)】,勾选【签署组件】
- 在选择强势名称密钥档(Choose a strong name key file):
- 选择新增(New)→输入【PDMOMenu】
- 点选【应用程序(Application)】
检查【组件名称(Assembly Name)】、【根命名空间(Root NameSpace)】是否是【PDMOMenu】 - 按【组件信息】,将【让组件成为COM-Visiable(Make assembly COM-Visiable)】打勾
- AssemblyInfo.vb:
- 请在最上方Imports加入:
Imports System.EnterpriseServices - 请在最下方加入以下指令:
<Assembly: ApplicationName("KDMO1000")> '*设定组件服务的项目名称
<Assembly: ApplicationAccessControl(False)>
<Assembly: ApplicationActivation(ActivationOption.Server)>
- 请在最上方Imports加入:
- Class 内容:
- 无Transaction Class(CDMOMenu1.vb):
- 有Transaction Class(CDMOMenu2.vb):
撰写完相关的程序后,接着就是Build项目,然后就会依照Project的Property设定的位置产生dll