我们正在应用程序从应用程序的根目录在运行时加载我们的自定义DLL(这些DLL正在实现某些接口)并通过反射执行方法。
如果自定义DLL必须从配置文件中读取一些值,那么我们必须将这些配置设置复制到主应用程序的app.config文件中。
有没有办法让每个自定义DLL都有自己的名为.config的配置文件,并从这些文件中读取其配置设置。
答案 0 :(得分:3)
如果您使用的是.NET 2.0或更高版本,则可以手动告诉配置系统从所需的任何配置文件加载设置。
ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap();
exeMap.ExeConfigFilename = "C:\Application\Default.config";
Configuration exeConfig = ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);
现在你有了自定义的“Config”对象,你就可以派对了! :-)通过调用exeConfig.GetSection()或任何你喜欢的方式加载整个部分。
另请参阅CodeProject上关于.NET 2.0配置系统的这个优秀的三部分系列 - 强烈推荐!
马克
答案 1 :(得分:1)
将DLL加载到新的AppDomain中并设置AppDomainSetup.ConfigurationFile。这将允许您为每个自定义DLL创建单独的配置文件。
答案 2 :(得分:0)
我确信在框架中有一种方法可以做到这一点,只是不记得我的头脑。您正在寻找的是Per-Assembly配置文件,我记得读过有关此Per Assembly Configuration Files
的文章