Net下,如何通过Com组件实现自己实现事务

1、添加对dll System.EnterpriseServices引用,并且在程序的头部使用using System.EnterpriseServices;引入命名空间。

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() { }
    }

4、修改AssemblyInfo.cs文件
[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文件,实例化类,正常使用。

好了,这是第一篇文件,把自己的写代码的步骤记录下来,以备后查。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值