重新启动应用程序后恢复应用程序设置

本文关键字:应用程序 设置 恢复 重新启动 | 更新日期: 2023-09-27 17:49:47

我有一个c#应用程序,我在一个设置文件中存储一定的值,像这样:

<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="VITRIconEvacuationPlan.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="VITRIconEvacuationPlan.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <EvacuationPlan.Properties.Settings>
            <setting name="AssemblyCentre" serializeAs="String">
                <value>False</value>
            </setting>
        </EvacuationPlan.Properties.Settings>
    </applicationSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup><userSettings>
        <EvacuationPlan.Properties.Settings>
            <setting name="SymbolScale" serializeAs="String">
                <value>25</value>
            </setting>
        </EvacuationPlan.Properties.Settings>
    </userSettings>
</configuration>

默认情况下,SymbolScale属性设置为25(当我第一次启动应用程序时)我想在运行时改变SymbolScale属性,所以我把它放入用户范围。所以我可以说:

setting.SymbolScale = 150;
setting.save();

但是当我关闭应用程序时,SymbolScale的值再次变为25。但我希望它能存储运行时生成的值。我做错了什么?

重新启动应用程序后恢复应用程序设置

我找到了一个解决方案:

http://social.msdn.microsoft.com/forums/en - us/csharpgeneral/thread/ddeaca86 a093 - 4997 - 82 - c9 - 01 bc0c630138/

我只需要改变并保存我的SymbolValue,像这样:

Properties.Settings.Default.SymbolScale = 150;
Properties.Settings.Default.Save();
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.Save();

我不知道为什么我要调用保存函数两次,但它的工作原理(只有调用它两次)

您确定检查的是正确的"用户"吗?配置"文件?通常存储在"C:'Users'xyzuser'AppData'Local'yourcompany'youarpp'version'user.config"。

希望有帮助!

设置为:Settings.Default.SymbolScale = 150;

保存为Settings.Default.Save();