正在从独立存储检索列表

本文关键字:检索 列表 存储 独立 | 更新日期: 2023-09-27 18:26:22

我正试图将自定义类的列表保存到隔离的存储设置中,但要么保存不正确,要么检索不正确,我不确定出了什么问题,

类别:

[DataContract()]
public class Object
{
    public int ID { get; set; }
    public bool IsDeleted { get; set; }
    public bool IsActive { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public string Synopsis { get; set; }
    public string Body { get; set; }
    public string ImageUrl { get; set; }
    public string CreationDate { get; set; }
    public string LastUpdateDate { get; set; }
    public string DisplayUntilDate { get; set; }
    public int TotalViews { get; set; }
    public Gallery Gallery { get; set; }
}

然后我用这个保存

 List<Object> to_save = new List<Object>();

//填充对象列表,这是正确的,它只是生成一个大的对象列表然后

 var settings = IsolatedStorageSettings.ApplicationSettings;
   //save to_save to isolated storage
            settings.Add("Stories", to_save);
            settings.Save();

然后当我尝试取回它时:

//从隔离存储获取详细信息

        var settings = IsolatedStorageSettings.ApplicationSettings;
        List<Object> s = settings["Stories"] as List<Object>;

它只给了我两个都为空的项,我认为我的序列化做错了,但我不知道正确的方法,有人能帮忙吗?

编辑:

好的,我已经向每个字段添加了datamember,现在返回的2个项目不是null,并且包含正确的值,但是它不是整个列表,我如何检索整个列表,而不是2个项目?

正在从独立存储检索列表

您必须具有要串行化的强类型对象,因为Windows Phone上的串行化程序相当基本。

同样,对于隔离存储,只使用基本数据类型,因此您的"库"对象可能不会串行化。

请注意,对于简单的序列化,您实际上并不需要数据契约和数据成员属性,但使用它不应该损害它。

如果您想进行更复杂的串行化,请查看XMLSerializer