Как загрузить файл конфигурации в автоматически сгенерированный объект класса настроек

Мне нужно разбить настройки приложения на два файла: один для доступа к внешним ресурсам, таким как общая папка или URL-адрес веб-службы, а другой — для всего остального.

Чтобы сделать доступ к конфигурации простым в коде, я добавил новый файл настроек, названный ExternalResourceSettings. Эти файлы настроек являются производными от ApplicationSettingsBase.

Как я могу загрузить объект этого класса из определенного файла конфигурации?

Для пояснения, ExternalResourceSettings выглядит следующим образом:

internal sealed partial class ExternalResourceSettings: global::System.Configuration.ApplicationSettingsBase {
...
}

Класс ConfigurationManager может загрузить любой файл конфигурации в объект Config в 3 строки:

ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap();                    
configFileMap.ExeConfigFilename = "Some path";

// Get the mapped configuration file
var config =ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None);

Но как преобразовать его в ExternalResourceSettings? Или можно загрузить ExternalResourceSettings из определенного файла другим способом?

Примечание. Конструктор по умолчанию ExternalResourceSettings считывает данные из файла конфигурации по умолчанию.


person MiguelSlv    schedule 19.11.2019    source источник
comment
взгляните на это или это   -  person Matt.G    schedule 19.11.2019
comment
Представленное решение является своего рода решением грубой силы: оберните все настройки один за другим в другой класс. Я ищу какое-то решение, встроенное в структуру, чтобы избежать выполнения всей этой работы.   -  person MiguelSlv    schedule 19.11.2019
comment
Здесь тоже самое написано   -  person Matt.G    schedule 19.11.2019
comment
если бы вы могли использовать appsettings.json для ExternalResourceSettings, это могло бы работать..   -  person Matt.G    schedule 19.11.2019
comment
Да, но это не сильно типизированное решение и даже не позволяет избежать использования строк для ключей. Класс-оболочка дает работу, но это лучше, чем просто использовать appSettings. Странно, что нет нативного решения. Сейчас я ищу пакеты, пакеты, которые могут расширять конфигурацию таким образом.   -  person MiguelSlv    schedule 19.11.2019