会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
春绿缀红尘,清风润虚空。
博客园
首页
新随笔
新文章
联系
订阅
管理
Facade 层基类设计,通过实现模版方法设计模式和底层DBDataAccss类来实现业务层控制事务的功能。
/**/
//////////////////////////////////////////////////////////////////////////////////////////
//
///
///
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
}
}
posted on
2006-07-25 20:46
胡晓伟
阅读(
458
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部