隔离存储- Windows Phone 8

本文关键字:Phone Windows 存储 隔离 | 更新日期: 2023-09-27 18:18:54

我的项目中有两个页面。第一页是关于创建MyPoint对象,然后将其添加到列表中,最后将其保存到隔离存储,如下所示:

IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;

点类:

   public class MyPoint
    {
        public Ellipse Point { get; set; }
        public string Tag { get; set; }
        public GeoCoordinate Coords { get; set; }
        public string City { get; set; }
        public string PostalCode { get; set; }
        public MyPoint() { }
        public MyPoint(Ellipse point, GeoCoordinate cords, string tag, string city, string postalCode)
        {
            this.Point = point;
            this.Coords = cords;
            this.Tag = tag;
            this.City = city;
            this.PostalCode = postalCode;
        }
    }

保存到隔离存储方法:

private void SaveAppSettings()
        {
            try
            {
                appSettings.Remove("points");
            }
            catch { }
            try
            {
                appSettings.Add("points", this.points);
                appSettings.Save();   // this throws an Exception
            }
            catch { };
        }

second的页面加载方法

try
        {
            List<MyPoint> points = (List<MyPoint>)appSettings["points"];
            foreach (MyPoint p in points)
            {
                source.Add(new PointsBook(p.Tag, p.Coords, p.City, p.PostalCode));
            }
        }

关键是

appSettings.Save()抛出了一个异常,即使我注释了这一行都是正常的。我保存了要点,我可以通过这两页来阅读它们。

问题是当我关闭应用程序时,我的appSetting有一个字符串"points",但里面什么也没有。只有["key"],没有[value]。

隔离存储- Windows Phone 8

问题解决了!

MyPoint对象的构造函数中有Ellipse。IsolatedStorage抛出了一个关于元素无法序列化的异常。

一切正常