欢迎来到天天文库
浏览记录
ID:37909635
大小:99.50 KB
页数:10页
时间:2019-06-02
《C#用Attribute实现AOP事务》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、前言使用Attribute来实现方法级别事务一直是我的梦想,浅谈Attribute[C#
2、Attribute
3、DefaultValueAttribute]有体现我的无奈,Attribute确实是真真切切的非侵入式的东西(其实我是想侵入的:)),前有DUDU的Attribute在.net编程中的应用系列文章,但是总是离想象和需求有那么点出入,通过三天的努力,Google的陪伴,下面和大家一起分享我这三天的成果用Attribute实现AOP事务吧!致谢文章1.Aspect-OrientedProgrammingEnablesBetterCodeEncapsulationa
4、ndReuse关键性的CallContext是在这里发现的。2.C#Attribute在.net编程中的应用(转)这篇文章原文地址找不到了,DUDU的Attribute在.net编程中的应用系列文章就是这篇文章的分解,他写到了五,后面的大家可以从这篇文章里面提前看到了。阅前注意1.整篇文章的核心和突破点在于上下文Context的使用,务必注意CallContext在整个程序中起到的作用2.本文中看到的SqlHelper使用的是微软SqlHelper.cs。3.本文重点在于如何实现,并且已经测试通过,只贴关键性代码,所以请认真阅读,部分代码直接拷贝下来运行是会出错的!正
5、文首先我们来看一段未加事务的代码:SqlDAL.cspublicabstractclassSqlDAL{#regionConnectionStringprivateSqlConnectionStringBuilder_ConnectionString=null;//////字符串连接///publicvirtualSqlConnectionStringBuilderConnectionString{get{if(_ConnectionString==null
6、
7、string.IsNullOrEmpty(_ConnectionStr
8、ing.ConnectionString)){_ConnectionString=newSqlConnectionStringBuilder(Configurations.SQLSERVER_CONNECTION_STRING);}return_ConnectionString;}set{_ConnectionString=value;}}#endregion#regionExecuteNonQuerypublicintExecuteNonQuery(stringcmdText){returnSqlHelper.ExecuteNonQuery(ConnectionSt
9、ring.ConnectionString,CommandType.Text,cmdText);}publicintExecuteNonQuery(stringcmdText,CommandTypetype){returnSqlHelper.ExecuteNonQuery(ConnectionString.ConnectionString,type,cmdText);}publicintExecuteNonQuery(stringcmdText,CommandTypetype,paramsSqlParameter[]cmdParameters){returnSqlHe
10、lper.ExecuteNonQuery(ConnectionString.ConnectionString,type,cmdText,cmdParameters);}#endregion代码说明:1.本类对SqlHelper.cs进一步封装。2.Configurations.SQLSERVER_CONNECTION_STRING替换成自己的连接字符串就行了。UserInfoAction.cspublicclassUserInfoAction:SqlDAL{//////添加用户///publicvoidAdd(UserInfous
11、er){StringBuildersb=newStringBuilder();sb.Append("UPDATE[UserInfo]SETPassword='");sb.Append(user.Password);sb.Append("'WHEREUID=");sb.Append(user.UID);ExecuteNonQuery(sql);}}如果我们要加入事务,通常的办法就是在方法内try、catch然后Commit、Rollback,缺点就不说了,下面我会边贴代码边讲解,力图大家也能掌握这种方法:)先贴前面两个被我修改的类SqlDAL.cspu
此文档下载收益归作者所有