来自IsolatedStorageSettings.ApplicationSettings的数据在从逻辑删除返回时消失

时间:2011-07-31 18:09:42

标签: c# silverlight windows-phone-7 isolatedstorage

从Tombstone返回时,IsolatedStorageSettings.ApplicationSettings中的数据消失了。

非常感谢任何建议或建议。感谢。

详细信息:

当我尝试保存到IsolatedStorageSettings.ApplicationSettings一个将STRING键映射到OBJECT值的字典时,从逻辑删除返回后,隔离存储中的所有值都消失了。如果我不尝试保存该字典,从Tombstone返回时没有问题。

以下是代码:

[DataContract]
[KnownType(typeof(TestClass))]
public class TestClass
{
    [DataMember]
    public string Property1 { get; private set; }

    public TestClass(string prop1)
    {
        Property1 = prop1;
    }
}


public static void AddValuesToIsolatedStorage()
{
    IsolatedStorageSettings.ApplicationSettings["Key1"] = 1234;
    IsolatedStorageSettings.ApplicationSettings["Key2"] = "abcd";

    Dictionary<string, object> dict = new Dictionary<string, object>();
    dict.Add("the key", new TestClass("a"));

    // IsolatedStorageSettings.ApplicationSettings["Key3"] = dict;
    // IsolatedStorageSettings.ApplicationSettings.Save();
}

我观察到的(在模拟器和我的手机上 - HTC HD7)是如果2行仍然被注释掉,当我从Tombstone返回时,IsolatedStorageSettings.ApplicationSettings.Count返回2(预期),以及Key1和Key2存在。

但是,如果我取消注释这两行,从逻辑删除返回后,IsolatedStorageSettings.ApplicationSettings.Count将返回0,并且Key1,Key2和Key3都不在IsolatedStorageSettings.ApplicationSettings中。

预期:取消注释两行后,从逻辑删除返回时,IsolatedStorageSettings.ApplicationSettings.Count将返回3,并且Key1,Key2和Key3将出现。

1 个答案:

答案 0 :(得分:1)

序列化不适用于只读属性。

例如参见this WCF question