Если у меня в файле myprogram.exe.config:
<configuration>
<configSections>
<section name="fooSection" type="MyNamespace.MySection, My.Assembly"/>
</configSections>
<appSettings>
<add key="foo" value="bar"/>
</appSettings>
<fooSection>
<bar>
<add baz="foo bar baz"/>
</bar>
</fooSection>
</configuration>
, а у меня в файле overrides.config:
<configuration>
<configSections>
<section name="fooSection" type="MyNamespace.MySection, My.Assembly"/>
</configSections>
<appSettings>
<add key="foo" value="BAZ"/>
</appSettings>
<fooSection>
<bar>
<add baz2="foo foo"/>
</bar>
</fooSection>
</configuration>
Есть ли способ прочитать это вбазовая (или загруженная) конфигурация, как вы могли бы получить с приоритетом файла конфигурации machine-> app?(или даже machine.config -> корень машины web.config -> локальное приложение web.config)
В этом примере я бы хотел, чтобы config.AppSettings ["foo"] был "BAZ" и fooSection toсодержат два элемента: "foo bar baz" и "foo foo".
Я не могу найти способ, и я предполагаю, что он может не поддерживаться.Я перепробовал много перестановок.
MySection section = ConfigurationManager.GetSection("foo") as MySection;
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.LocalUserConfigFilename = // have tried this;
fileMap.ExeConfigFilename = // have tried this
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
ConfigurationManager.RefreshSection("foo");
foo = ConfigurationManager.GetSection("foo") as MySection;
// will only have one item
foo = config.GetSection("foo") as MySection;
// will only have one item