可以看到这些配置文件都有一个相同的节点:<appSettings>。它有一个属性为file.可以这样写:
<appSettings file="..\common.config">
</appSettings>
该属性指定包含自定义应用程序配置设置的外部文件的相对路径。如果找不到指定的文件,运行库会忽略该属性。如果找到相同的key值,那么它会覆盖掉主配置文件的value。
注意:用 file 属性指定的配置文件必须将 <appSettings>(而非 <configuration>)作为根节点。以下为一个正确的代码:
<?XML version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="key2" value="CommonValue2"/>
</appSettings>
这样就可以使得所有的配置文件指向同一个外部文件了,也就合并为一个配置文件了。
然后可以用System.Configuration.ConfigurationSettings.AppSettings["keyName"]来读取其值。
但对于项目ClassLib,这种方法就无能为力了,它没有支持运行库的配置文件。到这里,理想状况下,可以做到使用至多两个文件来配置整个解决方案了。