在 Windows Phone 8 上存储位图图像
本文关键字:存储 位图 图像 Windows Phone | 更新日期: 2023-09-27 17:56:45
我会存储一个元素列表,但是当我运行我的应用程序时,会出现异常
此例外的文本:
类型"System.Windows.Media.Imaging.WriteableBitmap"无法序列化。请考虑使用 DataContractAttribute 属性标记它,并使用 DataMemberAttribute 属性标记要序列化的所有成员。或者,可以确保该类型是公共的并且具有无参数构造函数 - 然后将序列化该类型的所有公共成员,并且不需要任何属性。
Element el = new Element();
el.Text = TextACoder.Text;
el.Date = DateTime.Now.ToShortDateString();
el.SourceImg = ImageQR.Source;
List<Element> ListElement = new List<Element>();
if(IsolatedStorageSettings.ApplicationSettings.Contains("ListEl"))
{
ListElement = (List<Element>)IsolatedStorageSettings.ApplicationSettings["ListEl"];
ListElement.Add(el);
IsolatedStorageSettings.ApplicationSettings["ListEl"] = ListElement;
IsolatedStorageSettings.ApplicationSettings.Save();
}
else
{
ListElement.Add(el);
IsolatedStorageSettings.ApplicationSettings["ListEl"] = ListElement;
IsolatedStorageSettings.ApplicationSettings.Save();
}
当你分配到IsolatedStorageSettings.ApplicationSettings
时,它会在后台序列化数据以将其保存到IsolatedStorageFile
,例外是抱怨它不知道如何序列化WriteableBitmap
类。 你可以存储WriteableBitmap
数据的字节数组 - 这是如何将WriteableBitmap
转换为byte[]并再次转换回来的方法(请注意,您必须分别存储宽度和高度)。
根据您正在执行的操作,您可以向类中添加byte[]
字段,并且无论何时分配到SourceImg
,还可以更新 byte[] 字段。 然后使用 NonSerialized
属性标记支持 SourceImg
属性的字段。