using ProjectBase.Util; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectBase.Data.BaseDAL { /// /// 对业务类进行构造的工厂类 /// /// 业务对象类型 public class BLLFactory where T : class { private static Hashtable objCache = new Hashtable(); private static object syncRoot = new Object(); /// /// 创建或者从缓存中获取对应业务类的实例 /// public static T Instance { get { string CacheKey = typeof(T).FullName; T bll = (T)objCache[CacheKey];  //从缓存读取 if (bll == null) { lock (syncRoot) { if (bll == null) { bll = Reflect.Create(typeof(T).FullName, typeof(T).Assembly.GetName().Name); //反射创建,并缓存 objCache.Add(typeof(T).FullName, bll); } } } return bll; } } } }