0

我正在尝试将自定义类的列表保存到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 并且包含正确的值,但是它不是整个列表,我怎样才能检索整个列表,而不是只有 2 个项目?

4

1 回答 1

0

你必须有强类型的对象才能序列化,因为 Windows Phone 上的序列化器是相当基本的。

同样对于隔离存储,仅使用基本数据类型,因此您的“图库”对象可能不会被序列化。

请注意,您实际上不需要数据协定和数据成员属性来进行简单的序列化,但不应该通过使用它来损害它。

如果您想做更复杂的序列化,请查看 XMLSerialiser

于 2013-08-07T16:44:56.797 回答