Здравствуйте! В приложении требуется получить информацию из файла конфигурации (.config). Для этого использую System.Configuration, а так как решил для удобства разбить конфигурацию на несколько файлов, создал статический класс ApplicationConfiguration. При помощи этого класса можно получить информацию из определённого файла конфигурации:
// Contains objects of application configuration
public static class ApplicationConfiguration
{
public static Configuration SettingsConfiguration { get; } =
ConfigurationManager.OpenMappedExeConfiguration(
new ExeConfigurationFileMap { ExeConfigFilename = Environment.CurrentDirectory + @"Configuration\settingsConfiguration.config" }, ConfigurationUserLevel.None);
public static Configuration SettingsWindowConfiguration { get; } =
ConfigurationManager.OpenMappedExeConfiguration(
new ExeConfigurationFileMap { ExeConfigFilename = @"Configuration\settingsWindowConfiguration.config" }, ConfigurationUserLevel.None);
}
В папке приложения создана папка Configuration, в ней два файла settingsConfiguration.config и settingsWindowConfiguration.config
settingsConfiguration.config (т.к. пока используется только он):
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="AutoUpdateProcesses" value="false"/>
</appSettings>
</configuration>
Прям сразу при запуске приложения, класс ApplicationConfiguration задействуется в модели представления главного окна, из него получаем объект settings, при помощи свойства в операторе if:
Configuration settings = ApplicationConfiguration.SettingsConfiguration;
public MainVM()
{
if(settings.AppSettings.Settings["AutoUpdateProcesses"].Value == "true")
{
// We perform the update operation in a separate thread
Task.Run(() =>
{
// Endless cycle
while (true)
{
Processes = Process.GetProcesses().ToList();
Thread.Sleep(4000); // Updating every 4 seconds
}
});
}
}
Но, при запуске выбрасывается следующее исключение:
Я не могу понять, в чём причина. Заранее спасибо за помощь.