我正在使用user.config
存储我的应用程序设置。例如,我可以使用Properties.Settings.Default.Setting1
访问C#中的设置,并且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 corruption issue和User.config corruption之前已经问过这个问题。
但是,如果我尝试以下代码
// 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
,则并非在所有情况下都会引发异常。