我有一個存儲BitmapImage的ObservableCollection的類,我需要將這些信息存儲在IsolatedStorage中。我正在使用DataContract與其他類的工作。我在想,無法將BitmapImage設置爲DataMember會阻止它正常工作。ObservableCollection <BitmapImage> DataSerialize沒有序列化
錯誤信息是:
類型 'System.Windows.Media.ImageSource' 不能被序列化。考慮使用DataContractAttribute屬性標記它,並使用DataMemberAttribute屬性標記要序列化的所有成員。
任何幫助,將不勝感激。
CODE - 保存到IsolatedStorage
public static void AddOrUpdateUnsavedItems(string key, List<ProcessClass> unsavedItems)
{
var store = IsolatedStorageFile.GetUserStoreForApplication();
if (store.FileExists("unsaveditem"))
{
store.DeleteFile("unsaveditem");
}
using (var stream = new IsolatedStorageFileStream("unsaveditem", FileMode.OpenOrCreate, FileAccess.Write, store))
{
DataContractSerializer dcs = new DataContractSerializer(typeof(List<ProcessClass>));
dcs.WriteObject(stream, unsavedItems);
}
}
CODE - 類
[DataContract]
public class ProcessClass
{
ObservableCollection<BitmapImage> images = new ObservableCollection<BitmapImage>();
[DataMember]
public ObservableCollection<BitmapImage> Images
{
get { return images; }
set { images = value; }
}
[DataMember]
public string Notes { get; set; }
[DataMember]
public string ItemID { get; set; }
}
爲什麼你提到WCF? –
只是一個錯誤,謝謝 – Cybermaxs
使用WritableBitmap和Extensions.SaveJpeg將列表轉換爲byte []。似乎節省很好 – Seige