1、添加对dll System.EnterpriseServices引用,并且在程序的头部使用using System.EnterpriseServices;引入命名空间。
2、书写抽象类,public abstract class TransactionControllerBase:ServicedComponent ,该类类要从ServicedComponent继承
[assembly: ComVisible(true)]
[assembly:AssemblyKeyFileAttribute("..//..//Enterprise.snk")]//强命名,snk文件在项目的根目录,可以与别的类库共用一个snk文件
5、如果是类库项目,该类库所生成的dll必须是强命名的,所以可以使用VS自带的SN(Strong Name)工具,生成签名秘钥。
在vs.net2005自带的 命令行工具(不使用自带的工具要对环境变量进行配置)
sn -k 路径/Enterprise.snk
6、把dll.注册到.Net Framework,注册的必须使用管理员的权限,否则注册会失败。
regsvcs 路径/*.dll
此路径必须是完成路径
2、书写抽象类,public abstract class TransactionControllerBase:ServicedComponent ,该类类要从ServicedComponent继承
3、集成基类TransactionControllerBase,实现自己的事务类,并在类上增加 [Transaction(TransactionOption.Required)],以启用事务
以下就是一个实现类,其他类似,也要定义自己的接口。
/// <summary>
/// 需要事务的事务控制器
/// </summary>
[ProgId("RequireTransaction")]
[Guid("E42F5FFF-823B-4F20-AE80-B13A3C991113")]
[Transaction(TransactionOption.Required)]
public sealed class RequireTransaction:TransactionControllerBase
{
public RequireTransaction() { }
}
[assembly: ComVisible(true)]
[assembly:AssemblyKeyFileAttribute("..//..//Enterprise.snk")]//强命名,snk文件在项目的根目录,可以与别的类库共用一个snk文件
5、如果是类库项目,该类库所生成的dll必须是强命名的,所以可以使用VS自带的SN(Strong Name)工具,生成签名秘钥。
在vs.net2005自带的 命令行工具(不使用自带的工具要对环境变量进行配置)
sn -k 路径/Enterprise.snk
路径就是项目所在的绝对路径
也可以使用类库项目的属性对话框的签名属性来生成强命名的dll,效果一样的。
6、把dll.注册到.Net Framework,注册的必须使用管理员的权限,否则注册会失败。
regsvcs 路径/*.dll
此路径必须是完成路径
7、现在就可以在Web Form或者MVC中调用了,引用.dll文件,实例化类,正常使用。
好了,这是第一篇文件,把自己的写代码的步骤记录下来,以备后查。