|
using system; using system.configuration; using system.reflection; using system.web; using system.web.caching; using nguestbook.utility; www~eZhannet~com
namespace nguestbook.factory { /**//// <summary> /// 依赖注入提供者 /// 使用反射机制实现 /// </summary> public sealed class dependencyinjector { /**//// <summary> /// 取得数据访问层对象 /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象 /// </summary> /// <param name="classname">数据访问类名称</param> /// <returns>数据访问层对象</returns> public static object getdalobject(string classname) { /**//// <summary> /// 取得数据访问层名称,首先检查缓存,不存在则到配置文件中读取 /// 缓存依赖项为web.config文件 /// </summary> object dal = cacheaccess.getfromcache("dal"); if (dal == null) { cachedependency filedependency = new cachedependency(httpcontext.current.server.mappath("web.config")); dal = configurationmanager.appsettings["dal"]; cacheaccess.savetocache("dal", dal, filedependency); } E站&网络
/**//// <summary> /// 取得数据访问层对象 /// </summary> string dalname = (string)dal; string fullclassname = dalname + "." + classname; object dalobject = cacheaccess.getfromcache(classname); if (dalobject == null) { cachedependency filedependency = new cachedependency(httpcontext.current.server.mappath("web.config")); dalobject = assembly.load(dalname).createinstance(fullclassname); cacheaccess.savetocache(classname, dalobject, filedependency); }E站&网络
return dalobject; } E站*网络
/**//// <summary> /// 取得业务逻辑层对象 /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象 /// </summary> /// <param name="classname">业务逻辑类名称</param> /// <returns>业务逻辑层对象</returns> public static object getbllobject(string classname) { /**//// <summary> /// 取得业务逻辑层名称,首先检查缓存,不存在则到配置文件中读取 /// 缓存依赖项为web.config文件 /// </summary> object bll = cacheaccess.getfromcache("bll"); if (bll == null) { cachedependency filedependency = new cachedependency(httpcontext.current.server.mappath("web.config")); bll = configurationmanager.appsettings["bll"]; cacheaccess.savetocache("bll", bll, filedependency); }E站*网络
/**//// <summary> /// 取得业务逻辑层对象 /// </summary> string bllname = (string)bll; string fullclassname = bllname + "." + classname; object bllobject = cacheaccess.getfromcache(classname); if (bllobject == null) { cachedependency filedependency = new cachedependency(httpcontext.current.server.mappath("web.config")); bllobject = assembly.load(bllname).createinstance(fullclassname); cacheaccess.savetocache(classname, bllobject, filedependency); }[E站@网络]
return bllobject; } } }E站*网络
|