• 工厂模式


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using ProCommon;
    using System.Web.Caching;
    using System.Web;
    using System.Configuration;
    using System.Reflection;

    namespace ProFactory
    {

    /// <summary>
    ///依赖注入提供者
    ///使用反射机制实现
    /// </summary>
    public sealed class DependencyInjector
    {
    /// <summary>
    /// 取得数据访问层对象
    /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象
    /// </summary>
    /// <param name="className">数据访问类名称</param>
    /// <returns>数据访问层对象</returns>
    public static object GetDALObject(string className)
    {
    //取得访问层对象,首先检查缓存,不存在则在配置文件中读取
    //缓存依赖项为:Web.config;
    object dal = CacheClass.GetFromCache("DAL");
    if (dal == null)
    {
    CacheDependency denpency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.Config"));
    dal = ConfigurationManager.AppSettings["DAL"];
    CacheClass.SaveToCache("DAL", dal, denpency);
    }
    //取得数据访问层对象
    string dalName = dal.ToString();
    string fullClassName = dalName + "." + className;
    object dalObject = CacheClass.GetFromCache(className);
    if (dalObject == null)
    {
    CacheDependency fileDependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.config"));
    dalObject = Assembly.Load(dalName).CreateInstance(fullClassName);
    CacheClass.SaveToCache(className, dalObject, fileDependency);
    }
    return dalObject;
    }
    /// <summary>
    /// 取得业务逻辑层对象
    /// 首先检查缓存中是否存在,如果不存在,则利用反射机制返回对象
    /// </summary>
    /// <param name="className"></param>
    /// <returns></returns>
    public static object GetBLLObject(string className)
    {
    object bll = CacheClass.GetFromCache("BLL");
    if (bll == null)
    {
    CacheDependency dependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.config"));
    bll = ConfigurationManager.AppSettings["BLL"];
    CacheClass.SaveToCache("BLL", bll, dependency);
    }
    string bllName = bll.ToString();
    string fullClassName = bllName + "." + className;
    object fileBll = CacheClass.GetFromCache(className);
    if (fileBll == null)
    {
    CacheDependency dependency = new CacheDependency(HttpContext.Current.Server.MapPath("Web.config"));
    fileBll = Assembly.Load(bllName).CreateInstance(fullClassName);
    CacheClass.SaveToCache(className, fileBll, dependency);
    }
    return fileBll;
    }
    }
    }

  • 相关阅读:
    函数
    函数知识点 --- 函数的认知,组成,格式 --------------- #10
    打包app
    vue ie
    css position
    awesome vue
    20110636乐建18588529432
    vue2.0-基于elementui换肤[自定义主题]
    三目运算符,多条件判断
    微信二次开发准备工作
  • 原文地址:https://www.cnblogs.com/wzq806341010/p/2846795.html
Copyright © 2020-2023  润新知