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名称空间和组件类库的名称空间.
以上就是我个人的一些总结,说的可能有点含糊,因为我也是才研究这个东东,也在学习阶段.只是把遇到的问题总结下来以便日后查看.