1
我终于明白,我可以从以前的版本使用类似下面的代码保存用户设置:当我更改设置的漫游属性时,如何保留用户设置的值?
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
然而,这似乎并没有,如果我改变设定的漫游属性生效。当我将漫游设置更改为本地或反之亦然时,是否有任何方法可以让设置值继续传输而不重置?
编辑:我研究了使用GetPreviousVersion()
方法将漫游设置升级到本地设置的一种可能方式,但它不起作用,因为如果当前设置不是当前设置的漫游版本时,先前版本的设置版本根本不返回。
重现:
- 将名为MySetting设置。
- 将MySetting的漫游属性更改为
true
。 - 确保MySetting的范围是
User
。 运行下面的代码:
Console.WriteLine(Settings.Default.GetPreviousVersion("MySetting")); Settings.Default.MySetting = "Not the default value."; Settings.Default.Save();
- 递增的组件版本。
- 再次运行代码,注意到输出了新值。
- 将MySetting的漫游属性更改为
false
。 - 再次增加程序集版本。
- 再次运行代码,注意到输出了默认值。