正在从独立存储检索列表
本文关键字:检索 列表 存储 独立 | 更新日期: 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