一、预览B、DbSession、D关系
二、预览ITOO底层
三、B层
父类BaseService
/// <summary>
/// 构造函数初始化
/// </summary>
public CoreBaseService()
{
SetDbSession();
SetCurrentDal();
}
//子类必须实现此方法来确定具体的DbSession对象
public abstract void SetDbSession();
//子类必须实现此方法,设置当前具体的Dal
public abstract void SetCurrentDal();
子类BaseService
实现SetDbSession
public override void SetDbSession()
{
//保证线程唯一
//在GetData方法中传入name为“DbSession”,在CallContext容器中查找是否有“DbSession”对象
ICoreDbSession dbSession = CallContext.GetData("DbSession") as ICoreDbSession;
if (dbSession == null)
{
//从配置文件中读取name为“DbSession”的内容
dbSession = SpringHelper.GetObject<ICoreDbSession>("DbSession");
CallContext.SetData("DbSession", dbSession);
}
this.MyBasedbSession = dbSession;
this.DbSession = (IDbSession)this.MyBasedbSession;
}