新建一个类库,然后添加对System.EnterpriseServices的引用.
Sample.cs代码如下
using System;
using System.Collections.Generic;
using System.Text;
using System.EnterpriseServices;
namespace Com
{
[assembly:ApplicationActivation(ActivationOption.Library)]
//事务支持
[Transaction(TransactionOption.RequiresNew)]
//com+名称
[assembly:ApplicationName("com+ sample")]
//just-in-time activation的支持
[JustInTimeActivation(true)]
//使用对象池
[ObjectPooling(true, 5, 20)]
public class Sample:ServicedComponent
{
//自动管理事务
[AutoComplete(true)]
public void Add(CommandType cmdType, string cmdText, SqlParameter[] pars)
{
//程序执行部分
........................
...........................
}
}
}
修改AssemblyInfo.cs,在AssemblyInfo.cs文件中添加using System.EnterpriseServices; 添加[assembly: AssemblyKeyFile("..//..//com.snk")](注:com.snk时用sn -k命令创建的强名文件,此处我是拷贝此文件在项目的根目录下),将[assembly: ComVisible(false)]改为[assembly: ComVisible(true)],
修改com的属性,在属性----->Build中找到Register for COM interop,然后选择.
编译此文件
用regsvcs命令将dll文件注册到com+ services中.(注:regsvcs使用如下: regsvcs 路径/com.dll)