在重構機房的過程中用到了抽象工廠+反射+配置檔案對B層和D層解耦,在運作時出現了一個問題:“未能加載檔案或程式集‘DAL’或它的某一個依賴項。系統找不到指定的檔案”。重新檢查了一遍工廠類和D層中的代碼,發現代碼沒有問題,通過上網查解決方案,知道了問題出現的原因,原來是在U層中沒有找到關于D層的DLL檔案。
大家都知道.Net程式的運作機制是在啟動層的bin檔案下的dubug裡面必須包含其他程式集生成的DLL檔案,程式在運作時會直接在啟動的這一層裡面直接調用所需要的DLL檔案。上述問題由于在U層的bin檔案下缺少D層的DLL檔案才會出現的。
這個問題的解決方案有兩種:
1、将D層中生成的DLL檔案手動地添加到U層的bin檔案中的dubug檔案夾裡面,不過這樣隻能解決目前的問題,後期還要做大量的添加工作。
2、調整D層中DLL的生成路徑。找到目前程式集,右擊屬性,在編譯中将生成輸出路徑改為U層檔案下的bin檔案中的dubug檔案下就可以了。

總結
關于這一部分的問題也涉及到.Net中的反射機制的原理,關于對“反射”的認識會在之後的文章中介紹,請大家敬請期待哈!