类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
假如我有一个通用的功能性的程序集Utility.dll,它有些需要配置的信息放在App.config中,并由该组件自身通过.Net框架提供的ConfigurationSettings.GetConfig()方法读取配置信息,以实现运行时配置。
现在问题如下:
若使用Utility.dll的宿主程序是一个独立的exe程序,如HostA.exe,我就得把对Utility.dll的配置信息文件App.config具体命名为HostA.exe.config,否则Utility.dll中读取不到配置信息。
若使用Utility.dll的宿主程序变成另一个独立的exe程序,如HostB.exe,我就得把对Utility.dll的配置信息文件App.config具体命名为HostB.exe.config,否则Utility.dll中读取不到配置信息。
请问,有没有办法在运行不同的宿主程序时使用同样的配置文件,如Utility.dll.config。请注意,有此需求的主要原因是我在Utility.dll中使用了框架提供的ConfigurationSettings.GetConfig()方法读取配置信息,而不想自己写分析程序读取自定义的配置文件(如指定一个配置文件名,始终在Utility.dll读取它,分析它。可以说我懒吧。 有好东西干吗不用呢?!)
另请注意,我在使用NUnit测试Utility.dll时,若测试程序集为TestUtility.dll,配置文件就得命名为TestUtility.dll.config,而非nunit-gui.exe.config(nunit-gui.exe为NUnit的主程序。)。我不知道如何为框架指定读取哪个配置文件,好像同当前的AppDomain有关。
请各位指教!谢谢!
btw:我不接受将配置信息写入machine.config的方案。
网友回答:
你把Utility.dll使用的App.config文件中的<appSettings>节中的内容添加到宿主程序的App.config的同一位置就可以了
楼上说的实现没错;
不过实现程序默认值,当配置文件中不存在相关内容时,自动写入默认值,这样就可以了,不一定要手动添加的。
你把Utility.dll使用的App.config文件中的<appSettings>节中的内容添加到宿主程序的App.config的同一位置就可以了
就是这样的
其实我问题的重点是,我想弄清楚.Net框架的ConfigurationSettings.GetConfig()的执行机理,即框架是如何加载配置信息文件的。
请注意NUnit的执行效果 !!
请各位继续赐教。