У меня есть код, включая модульные тесты, который пытается несколько раз сохранить файл конфигурации. Когда я пытаюсь сохранить файл конфигурации во второй раз, я получаю эту ошибку:
Не удалось сохранить конфигурацию в файл [FileName]
Мой код в основном делает это:
{
Configuration config = ConfigurationManager.OpenExeConfiguration(configName);
...change some values...
config.save();
}
а потом еще раз
{
Configuration config = ConfigurationManager.OpenExeConfiguration(configName);
...change some values in a different way...
config.save();
}
Когда я выполняю config.save во второй раз, возникает 10-секундная задержка, а затем я получаю сообщение об ошибке. Кто-нибудь знает, как «разблокировать» этот файл?
Я попытался сохранить экземпляр переменной конфигурации, то есть «в области видимости», но это не сработало.
private static Configuration GetConfiguration(string configName)
{
Configuration retval;
if (_configs == null) _configs = new Dictionary<string, Configuration>();
if (_configs.TryGetValue(configName, out retval)) return retval;
retval = ConfigurationManager.OpenExeConfiguration(configName);
_configs.Add(configName, retval);
return retval;
}
а потом
{
Configuration config = GetConfiguration(configName);
...change some values...
config.save();
}
вместе с
{
Configuration config = GetConfiguration(configName);
...change some values in a different way...
config.save();
}