ExeConfigurationFileMap не находит раздел в файле, но ConfigurationFileMap
Поиск пользовательского раздела в файле конфигурации работает, когда я использую путь к файлу, но когда я передаю конфигурационную карту exe с той же самой записью, она терпит неудачу. Зачем?
string file = System.Reflection.Assembly.GetAssembly(typeof(PhotoComparison)).Location + ".config";
var efm = new ExeConfigurationFileMap() { ExeConfigFilename = file };
var cfm new ConfigurationFileMap(file)
//returns entry
var o2 = ConfigurationManager.OpenMappedMachineConfiguration(cfm).GetSection("presetFilters");
//returns null
var o3 = ConfigurationManager.OpenMappedMachineConfiguration(efm).GetSection("presetFilters");
Приложения.NET используют иерархию конфигурационных файлов. Я нахожу, что эта диаграмма хорошо описывает ситуацию.
Как вы используете ExeConfigurationFileMap
, вы устанавливаете исполняемый файл конфигурации. Однако вы вызываете метод OpenMappedMachineConfiguration
который должен загружать только файл конфигурации машины.
Я думаю, вы не загружаете файл, который хотите. Возможно, это сработает для вас:
string file = "some config ...";
// ExeConfigFilename => MachineConfigFilename
var efm = new ExeConfigurationFileMap() { MachineConfigFilename = file };
var o3 = ConfigurationManager.OpenMappedMachineConfiguration(efm).GetSection("presetFilters");