Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从tombstone返回时,来自IsolatedStorageSettings.ApplicationSettings的数据将消失_C#_Silverlight_Windows Phone 7_Isolatedstorage - Fatal编程技术网

C# 从tombstone返回时,来自IsolatedStorageSettings.ApplicationSettings的数据将消失

C# 从tombstone返回时,来自IsolatedStorageSettings.ApplicationSettings的数据将消失,c#,silverlight,windows-phone-7,isolatedstorage,C#,Silverlight,Windows Phone 7,Isolatedstorage,从Tombstone返回时,IsolatedStorageSettings.ApplicationSettings中的数据将消失 如有任何意见或建议,将不胜感激。谢谢 详情: 当我试图将一个将字符串键映射到对象值的字典保存到IsolatedStorageSettings.ApplicationSettings中时,从tombstone返回后,来自独立存储的所有值都消失了。如果我不想保存那本字典,从墓碑镇回来时就不会有问题了 代码如下: [DataContract] [KnownType(type

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

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

详情:

当我试图将一个将字符串键映射到对象值的字典保存到IsolatedStorageSettings.ApplicationSettings中时,从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();
}
[DataContract]
[KnownType(typeof(TestClass))]
公共类TestClass
{
[数据成员]
公共字符串属性1{get;private set;}
公共测试类(字符串prop1)
{
属性1=属性1;
}
}
公共静态void AddValuesToIsolatedStorage()
{
隔离存储设置。应用程序设置[“键1”]=1234;
隔离存储设置。应用程序设置[“键2”]=“abcd”;
Dictionary dict=新字典();
dict.Add(“密钥”,新测试类(“a”);
//隔离存储设置。应用程序设置[“键3”]=dict;
//IsolatedStorageSettings.ApplicationSettings.Save();
}
我观察到(在emulator和我的手机HTC HD7上)如果这两行仍然被注释掉,当我从Tombstone返回时,IsolatedStorageSettings.ApplicationSettings.Count返回2(预期),并且Key1和Key2都存在

但是,如果我取消对这两行的注释,在从tombstone返回时,IsolatedStorageSettings.ApplicationSettings.Count返回0,并且IsolatedStorageSettings.ApplicationSettings中既没有键1,也没有键2,也没有键3


预期:在两行未注释的情况下,从tombstone返回时,IsolatedStorageSettings.ApplicationSettings.Count将返回3,并且Key1、Key2和Key3将出现。

序列化无法处理只读属性


例如,见

序列化无法处理只读属性

例如,见