我正在尝试将自定义类的列表保存到isolatedstoragesettings,但要么它没有正确保存,要么没有正确检索,我不确定是什么错误,
类:
[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>;
它只是给我2个项目都是null,我想我正在做序列化错误,但我不知道正确的方法,有人可以帮忙吗?
编辑:
好的我已经为每个字段添加了datamember,现在返回的2个项目不是null并且包含正确的值,但它不是整个列表,我如何检索整个列表,而不仅仅是2个项目?
答案 0 :(得分:0)
您必须拥有强类型对象才能序列化,因为Windows Phone上的序列化程序非常基础。
此外,对于隔离存储,仅使用基本数据类型,因此您的“图库”对象可能不会被序列化。
请注意,实际上并不需要数据协定和数据成员属性来进行简单的序列化,但不应该使用它来损害它。
如果您想进行更复杂的序列化,请查看XMLSerialiser