将提醒存储在IsolatedStorage Settings.ApplicationSettings中

时间:2014-03-26 14:14:12

标签: c# windows-phone-8 isolatedstorage

我正在尝试在IsolatedStorage中存储Reminder。它在运行时工作,但如果我重新启动应用程序,所有数据都将消失。

这里有一些代码可以取笑:

private IsolatedStorageSettings userSettings = IsolatedStorageSettings.ApplicationSettings;

private List<ScheduledAction> getStorage()
{
    if (!userSettings.Contains("notifications"))
    {
        userSettings.Add("notifications", new List<ScheduledAction>());
    }

    return (List<ScheduledAction>)userSettings["notifications"];
}
private void saveStorage(List<ScheduledAction> list)
{
    userSettings["notifications"] = list;
}

private void test()
{
    List<ScheduledAction> list = getStorage();
    Reminder alarm = new Reminder("name");
    list.Add(alarm);
    saveStorage(list);
}

我当前猜测未存储对象的原因是Reminder不可序列化。由于这不是我的目标,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

每当我们在IsolatedStorageSettings.Save Method 中添加或更新时,都需要在应用程序退出之前保存。我对你的代码做了一点改动,这可能对你有帮助。

private List<ScheduledAction> getStorage()
{
    if (!userSettings.Contains("notifications"))
    {
        userSettings.Add("notifications", new List<ScheduledAction>());
       userSettings.Save();
    }

    return (List<ScheduledAction>)userSettings["notifications"];
}

private void saveStorage(List<ScheduledAction> list)
{
    userSettings["notifications"] = list;
    userSettings.Save();
}