?
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Reflection;namespace Common.DALFactory {/// <summary>/// 數據層對象實例創建/// </summary>public partial class DbFactory{/// <summary>/// 做緩存/// </summary>private static Dictionary<string, object> dic = new Dictionary<string, object>();#region 程序集配置 -static readonly string DALAssembly/// <summary>/// 程序集配置/// </summary>private static readonly string DALAssembly = ConfigurationManager.AppSettings["dalAssembly"]; #endregion#region 命名空間配置 -static readonly string DALNameSpace/// <summary>/// 命名空間配置/// </summary>private static readonly string DALNameSpace = ConfigurationManager.AppSettings["dalNameSpace"]; #endregion#region 創建對象實例 -static object CreateInstance(string fullName, string assemblyName)/// <summary>/// 創建對象實例/// </summary>/// <param name="fullName">全名稱 命名空間.類名</param>/// <param name="assemblyName">程序集名稱</param>/// <returns></returns>private static object CreateInstance(string fullName, string assemblyName){string key = string.Format("{0}+{1}", assemblyName, fullName);if (!dic.ContainsKey(key)){Assembly assembly = Assembly.Load(assemblyName); // 加載程序集object obj = assembly.CreateInstance(fullName);dic.Add(key, obj);}return dic[key]; } #endregion} }
?