现在的位置: 首页 > 综合 > 正文

开发COM+组件需要注意的几个地方

2013年03月31日 ⁄ 综合 ⁄ 共 914字 ⁄ 字号 评论关闭

 1.必须引用System.EnterpriseServices和System.Reflection

2.组件类必须派生至ServicedComponent.

3.组件类一般情况下都要由下面

[Transaction(TransactionOption.Required)]
 [assembly: ApplicationActivation(ActivationOption.Server)]

这两个元属性进行修饰,TransactionOption和ActivationOption都是枚举类型,有多个枚举值,各个枚举值代表的含义不一样.

4.需要事务处理的函数可以可以用[AutoComplete(true)]自动事务处理,也可以通过事务上下文类ContextUtil的ContextUtil.EnableCommit();ContextUtil.SetComplete();ContextUtil.SetAbort();手动事务处理.

5.配置程序集AssemblyInfo.cs.加上下面的:

[assembly: AssemblyKeyFile("..//..//key.snk")]

[assembly: ApplicationAccessControl(true)].

再把[assembly: ComVisible(false)]改为[assembly: ComVisible(true)].

注意key.snk这个文件是通过SDK命令行生成的:sn -k key.snk.这个文件默认生成在SDK文件夹下面的V2.0文件夹里.

需要把这个密钥文件复制到与工程文件目录同级的目录下.

6.将类库生成为DLL文件,右键类库文件--生成,就自动在BIN文件夹里生成了同名DLL文件.

7注册COM+组件,在SDK命令提示行里输入:regsvcs DLL文件的路径.

8在客户端使用COM+组件,和使用普通的类库文件一样,先将该类库文件引用进来,当然也要引用System.EnterpriseServices名称空间和组件类库的名称空间.

以上就是我个人的一些总结,说的可能有点含糊,因为我也是才研究这个东东,也在学习阶段.只是把遇到的问题总结下来以便日后查看.

 

抱歉!评论已关闭.