【问题标题】:Restore Application Settings after restarting the application重新启动应用程序后恢复应用程序设置
【发布时间】:2012-12-29 18:03:40
【问题描述】:

我有一个 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。但我希望它从运行时存储我的 chenged 值。我做错了什么?

【问题讨论】:

    标签: c# runtime settings restart


    【解决方案1】:

    我在这里找到了解决方案:

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

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

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

    我不知道为什么我必须调用保存函数两次,但它可以工作(而且只有调用两次)

    【讨论】:

      【解决方案2】:

      您确定您检查的是正确的“user.config”文件吗? 通常存储在“C:\Users\xyzuser\AppData\Local\yourcompany\youarpp\version\user.config”中。

      希望有帮助!

      【讨论】:

      • 我没有这样的配置文件。我刚刚编写了一个程序集,用作 AutoCAD 中的插件。我刚刚通过 Visual Studio 设置属性创建了 app.config。 (项目 -> 属性 -> 设置 -> Settings.settings)
      【解决方案3】:

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

      Settings.Default.Save();保存它

      【讨论】:

      • 我已将其更改为应用程序范围,但当我尝试更改该值时,它告诉我它已被写保护。
      • @Metalhead89 你是对的,我已经编辑了我的答案。它对你有用吗?它作为用户范围设置对我有用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 1970-01-01
      • 2021-01-04
      • 2011-10-29
      • 2015-11-01
      相关资源
      最近更新 更多