来自isolatedstoragessettings的数据.ApplicationSettings在从墓碑返回时消失

本文关键字:墓碑 返回 消失 isolatedstoragessettings 数据 ApplicationSettings 来自 | 更新日期: 2023-09-27 18:04:09

从Tombstone返回时,isolatedstoragessettings中的数据。ApplicationSettings已删除

如有任何意见或建议,我将不胜感激。谢谢。

细节:

当我尝试保存到isolatedstoragessettings时。ApplicationSettings一个将STRING键映射到OBJECT值的字典,从tombstone返回后,来自隔离存储的所有值都消失了。如果我不尝试保存该字典,那么从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返回时,isolatedstoragessettings . applicationsettings . count返回2(预期),并且Key1和Key2都存在。

但是,如果我取消注释这两行,在从tombstone返回时,isolatedstoragessettings . applicationsettings . count返回0,并且Key1、Key2和Key3都不在isolatedstoragessettings . applicationsettings中。

预期:由于这两行没有注释,当从tombstone返回时,isolatedstoragessettings . applicationsettings . count将返回3,并且Key1, Key2和Key3将出现

来自isolatedstoragessettings的数据.ApplicationSettings在从墓碑返回时消失

序列化不支持只读属性。

参见这个WCF问题。