我們正在從應用程序的根目錄加載我們自定義的DLL(這些DLL正在實現一些接口)的應用程序,並通過反射執行一個方法。配置DLL的文件
如果自定義DLL必須從配置文件讀取一些值,那麼我們必須將這些配置設置複製到主應用程序的app.config文件中。
有沒有什麼辦法可以讓每個自定義DLL都有自己的配置文件名爲.config,並從這個文件本身讀取其配置設置。
我們正在從應用程序的根目錄加載我們自定義的DLL(這些DLL正在實現一些接口)的應用程序,並通過反射執行一個方法。配置DLL的文件
如果自定義DLL必須從配置文件讀取一些值,那麼我們必須將這些配置設置複製到主應用程序的app.config文件中。
有沒有什麼辦法可以讓每個自定義DLL都有自己的配置文件名爲.config,並從這個文件本身讀取其配置設置。
將你的DLL載入一個新的AppDomain並設置AppDomainSetup.ConfigurationFile。這將允許您爲每個自定義DLL創建一個單獨的配置文件。
我確信有一種方法可以在框架中做到這一點,只是無法記住我的頭頂。什麼你要找的是每裝配的配置文件,我記得曾讀到的一篇文章這樣Per Assembly Configuration Files
如果你在.NET 2.0或更高版本,您可以手動告訴配置系統從任何配置加載設置你想要的文件。
ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap();
exeMap.ExeConfigFilename = "C:\Application\Default.config";
Configuration exeConfig = ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);
現在,你有你的自定義的「配置」對象,你可以在它的派對! :-)通過調用exeConfig.GetSection()或任何你喜歡的方式加載整個部分。
另請參閱CodeProject上關於.NET 2.0配置系統的優秀三部分系列 - 強烈推薦!
馬克