利用Attribute给C#实现AOP?

最近在想一些自动事务处理的东西,本来想利用COM+的自动事务处理,结果遭遇困难
没有办法,准备利用基于[ThreadStatic]的事务控制器来实现,在ASP.net中配合Global.asax来初始化、提交、回滚事务。应该同样可以实现简单的全局事务控制。但是这样做的缺点:
1. 页面级的事务时间过长
2. 要在代码中控制特别事务

能不能利用Attribute来实现, 象[Transaction(TransactionOption)]之类的Attribute一样控制方法中的事务?

目前的自定义的Attibute似乎只是个标志,要操作程序(透过Reflection)来识别并且处理。并且似乎没有办法让我们在运行时处理处理它。

感谢JGTM http://blog.joycode.com/jgtm2000/posts/13446.aspx 通过动态Proxy也许能提供一些机会执行自定义Attribute.

如果在BLL和DAL层中加入以下Attribute,应该可以少写很多代码:
[MyTransaction(TransactionOption.Supported)]
[MyLog]
[MyErrorHandler]
原来写在方法中的Try/Catch/事务控制/Log处理都将自动执行。

先想这么多,请了解这东西的高手给个指点regular_smile.gif

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值