隔离存储- 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]。
问题解决了!
MyPoint对象的构造函数中有Ellipse。IsolatedStorage抛出了一个关于元素无法序列化的异常。
一切正常