【问题标题】:Can not save setting in roaming/local setting无法在漫游/本地设置中保存设置
【发布时间】:2013-02-12 05:14:14
【问题描述】:

我需要将设置保存在漫游或本地设置中。问题是当我执行程序时,它显示设置是用给定的键存储的,并且这些设置也可以被检索回来。 但是当我稍后重新执行或执行相同的程序时,那些保存的设置会丢失。它再次创造了它们!

为什么设置没有被保存?

要设置设置,我使用以下代码(设置是字符串,值是对象)

ApplicationData.Current.LocalSettings.Values.Add(setting, value);

ApplicationData.Current.RoamingSettings.Values.Add(setting, value);

要检索设置,我使用以下代码

ApplicationData.Current.RoamingSettings.Values[setting];

这段代码有什么问题?

【问题讨论】:

  • 你好,谁能帮帮我............

标签: c# .net windows-8 windows-store-apps


【解决方案1】:

您的代码应该可以正常工作。您用来决定读取值和写回值的逻辑可能存在问题。

尝试在您的应用启动时添加这样的内容:

object settingValue = "InitValue";

if (ApplicationData.Current.LocalSettings.Values.ContainsKey(settingKey))
{
    settingValue = ApplicationData.Current.LocalSettings.Values[settingKey];
}
else
{
    ApplicationData.Current.LocalSettings.Values[settingKey] = settingValue;
}

你基本上需要读取设置是否存在或不存在时对其进行初始化。

另外,请注意,卸载并重新安装应用后,本地设置会被删除。 Visual Studio 有时会在您更改应用程序清单时执行此操作。

【讨论】:

  • 是的,达米尔,我理解你的逻辑。如果退出则替换,否则添加一个新的。但问题是它显示设置已存储,我只能在执行期间检索背面。如果我重新执行那些在第一次执行时保存的设置将会丢失!!我就是想不通这个问题?我需要设置任何应用清单值还是什么?
  • @Kasun 一定有其他因素影响您的设置。您无需为它们在不同的应用程序运行之间执行任何特殊操作。我为您准备了一个sample app 来展示这种行为。
  • 你好 Damir,是的,事实上你的代码工作得很好。即使您下次运行应用程序,保存的数据仍然可用。我将再次交叉检查我的配置。非常感谢:)
  • 您好 Damir,实际上问题是在 C:\Users\Kasun laptop\AppData\Local\Packages\ 创建的文件夹在执行后被自动删除或删除。但是您的示例应用程序不会发生这种情况。你能告诉我为什么创建的文件夹不会永久保留吗?有什么我必须做的设置吗?
【解决方案2】:

我在调试测试方法时犯了一个错误,因此设置不会被永久保存。如果您执行您的应用程序,您的所有设置都将使用上述简单编码保存。

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 2013-01-21
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-24
    相关资源
    最近更新 更多