public sealed class DependencyInjector
15    {
16        /**//// <summary>
17        /// 取得数据访问层对象
18        /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象
19        /// </summary>
20        /// <param name="className">数据访问类名称</param>
21        /// <returns>数据访问层对象</returns>
22        public static object GetDALObject(string className)
23        {
24            /**//// <summary>
25            /// 取得数据访问层名称,首先检查缓存,不存在则到配置文件中读取
26            /// 缓存依赖项为Web.Config文件
27            /// </summary>
28            object dal = CacheAccess.GetFromCache("DAL");
29            if (dal == null)
30            {
31                CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config"));
32                dal = ConfigurationManager.AppSettings["DAL"];
33                CacheAccess.SaveToCache("DAL", dal, fileDependency);
34            }
35
36            /**//// <summary>
37            /// 取得数据访问层对象
38            /// </summary>
39            string dalName = (string)dal;
40            string fullClassName = dalName + "." + className;
41            object dalObject = CacheAccess.GetFromCache(className);
42            if (dalObject == null)
43            {
44                CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config"));
45                dalObject = Assembly.Load(dalName).CreateInstance(fullClassName);
46                CacheAccess.SaveToCache(className, dalObject, fileDependency);
47            }
48
49            return dalObject;
50        }
51
posted on 2008-08-19 09:45  许维光  阅读(477)  评论(0)    收藏  举报