温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:NBear+NBear开发BBS系统源码
当前文件:
NBBS/Factory/DependencyProvider.cs,打开代码结构图
NBBS/Factory/DependencyProvider.cs,打开代码结构图1using System; 2
using System.Configuration; 3
using System.Reflection; 4
using System.Web; 5
using System.Web.Caching; 6
7
namespace NBBS.Factory 8
{ 9
/// <summary> 10
/// 依赖注入提供者 11
/// 使用反射机制实现 12
/// </summary> 13
public sealed class DependencyProvider 14
{ 15
/// <summary> 16
/// 取得数据访问层对象 17
/// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象 18
/// </summary> 19
/// <param name="className">数据访问类名称</param> 20
/// <returns>数据访问层对象</returns> 21
public static object GetDALObject(string className) 22
{ 23
/// <summary> 24
/// 取得数据访问层名称,首先检查缓存,不存在则到配置文件中读取 25
/// 缓存依赖项为Web.Config文件 26
/// </summary> 27
object dal = CacheAccess.GetFromCache("DAL"); 28
if (dal == null) 29
{ 30
CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config")); 31
dal = ConfigurationManager.AppSettings["DAL"]; 32
CacheAccess.SaveToCache("DAL", dal, fileDependency); 33
} 34
35
string dalName = (string)dal; 36
37
/// <summary> 38
/// 取得数据访问层对象,首先检查缓存,不存在则利用反射机制加载 39
/// 缓存依赖项为Web.Config文件 40
/// </summary> 41
string fullClassName = dalName + "." + className; 42
object dalObject = CacheAccess.GetFromCache(className); 43
if (dalObject == null) 44
{ 45
CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config")); 46
dalObject = Assembly.Load(dalName).CreateInstance(fullClassName); 47
CacheAccess.SaveToCache(className, dalObject, fileDependency); 48
} 49
50
return dalObject; 51
} 52
53
/// <summary> 54
/// 取得业务逻辑层对象 55
/// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象 56
/// </summary> 57
/// <param name="className">业务逻辑类名称</param> 58
/// <returns>业务逻辑层对象</returns> 59
public static object GetBLLObject(string className) 60
{ 61
/// <summary> 62
/// 取得业务逻辑层名称,首先检查缓存,不存在则到配置文件中读取 63
/// 缓存依赖项为Web.Config文件 64
/// </summary> 65
object bll = CacheAccess.GetFromCache("BLL"); 66
if (bll == null) 67
{ 68
CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config")); 69
bll = ConfigurationManager.AppSettings["BLL"]; 70
CacheAccess.SaveToCache("BLL", bll, fileDependency); 71
} 72
73
string bllName = (string)bll; 74
75
/// <summary> 76
/// 取得业务逻辑层对象,首先检查缓存,不存在则利用反射机制加载 77
/// 缓存依赖项为Web.Config文件 78
/// </summary> 79
string fullClassName = bllName + "." + className; 80
object bllObject = CacheAccess.GetFromCache(className); 81
if (bllObject == null) 82
{ 83
CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config")); 84
bllObject = Assembly.Load(bllName).CreateInstance(fullClassName); 85
CacheAccess.SaveToCache(className, bllObject, fileDependency); 86
} 87
88
return bllObject; 89
} 90
} 91
} 92





}