/**/ ////////// Copyright (C), 2002-2008, Murphy Corporation./// /// FileName: FacadeBase.cs/// Author: 胡晓伟/// Version: beta/// Description: BizFacade Foundation Class : Basic Biz Function Class ../// /// //// using System; using System.Reflection; using COM.Makinfo.DataAccess; namespace COM.Makinfo.Facade { /**//// <summary> /// FacadeBase 的摘要说明。 /// </summary> public abstract class FacadeBase:IDisposable { protected DBAccess[] aryDBAccess; public FacadeBase() { } /**//// <summary> /// 设置同在一个事务中的DBAccess实例。 /// </summary> /// <param name="aryDBAccess"></param> protected void SetAryDBAccess(params DBAccess[] aryDBAccess) { this.aryDBAccess = aryDBAccess; } /**//// <summary> /// 运行事务处理方法。 /// </summary> /// <param name="strMesthodeName">要运行的方法名。</param> /// <param name="paramerts">方法的参数。</param> /// <returns></returns> protected object RunCooperation(string strMesthodeName,params object[] paramerts) { try { //Begin cooperation work. BeginCooperation(); MethodBase method = this.GetType().GetMethod(strMesthodeName, BindingFlags.Instance|BindingFlags.NonPublic|BindingFlags.Public); object oResult = method.Invoke(this,paramerts); //Commit. CommitCooperation(); //Return value return oResult; } catch(Exception ex) { //Rollback. RollbackCooperation(); throw ex; } } /**//// <summary> /// 开始事务。 /// </summary> private void BeginCooperation() { //Begin cooperation work. DBAccess.BeginCooperation(aryDBAccess); } /**//// <summary> /// 提交事务。 /// </summary> private void CommitCooperation() { //Commit. DBAccess.CommitCooperation(aryDBAccess); } /**//// <summary> /// 回滚事务。 /// </summary> private void RollbackCooperation() { //Rollback. DBAccess.RollbackCooperation(aryDBAccess); } IDisposable 成员#region IDisposable 成员 public virtual void Dispose() { // TODO: 添加 FacadeBase.Dispose 实现 } #endregion }} 转载于:https://www.cnblogs.com/richardhu/archive/2006/07/25/459636.html