Я использую user.config
для хранения настроек своего приложения.Я могу получить доступ к настройкам в C #, например, с помощью Properties.Settings.Default.Setting1
, и файл user.config
выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<userSettings>
<MyApp.Properties.Settings>
<setting name="Setting1" serializeAs="String">
<value>ABCDEF</value>
</setting>
</MyApp.Properties.Settings>
</userSettings>
</configuration>
Но когда мой user.config
поврежден по какой-либо причине, мое приложение падает сследующее System.ConfigurationErrorException
.
Я бы предпочел, чтобы в этом случае приложение удаляло поврежденный файл user.config
и запускалось с настройками по умолчанию.
Есть ли способ добиться этого?
Обновление
Я видел, что этот вопрос задавался, прежде чем см. испорченность user.config и Повреждение User.config.
Но если я попробую следующий код
// Check for corrupt settings
try
{
var dummy = Properties.Settings.Default.Setting1;
}
catch (ConfigurationErrorsException exception)
{
Console.WriteLine("Settings are corrupt!");
File.Delete(exception.Filename);
}
, то exception.Filename
будет null
.И если я использую ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
внутри моего try
блока, исключение возникает не во всех случаях.