項目結構:
DALFactory 反射代碼反射
//使用緩存 private static object CreateObject(string AssemblyPath,string classNamespace) { object objType = DataCache.GetCache(classNamespace); if (objType == null) { try { Assembly assm = Assembly.Load(AssemblyPath);//第一步:通過程序集名稱加載程序集 objType = assm.CreateInstance(classNamespace);// 第二步:通過命名空間+類名創建類的實例。 DataCache.SetCache(classNamespace, objType);// 寫入緩存 } catch//(System.Exception ex) { //LogOperate.WriteErrorLog("創建反射異常(不使用緩存)", ex); //string str=ex.Message;// 記錄錯誤日志 } } return objType; }
當程序運行時到Assembly assm = Assembly.Load(AssemblyPath); assm值為空則會報錯
錯誤原因一:
配置文件中的Key的Value必須跟,SQLServerDAL中的程序集名稱一致。
右鍵SQLServerDAL,屬性,可查看程序集名稱
錯誤原因二:
站點沒有引用SQLServerDAL,添加引用即可