【发布时间】:2012-11-16 03:41:54
【问题描述】:
我正在制作一个 WPF 应用程序,我在其中保存我的 WPF 应用程序退出时的对象列表。并在系统启动时获取对象列表。最初一切正常。但有时它会给出序列化异常。得到异常后,我查看了 xml 序列化文件。但在我看来,抛出异常是因为 xml 文件没有正确形成。当我纠正它时。它再次运行良好。
public static class IsolatedStorageCacheManager<T>
{
public static void store(T loc)
{
IsolatedStorageFile appStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain, null, null);
using(IsolatedStorageFileStream fileStream=appStore.OpenFile("myFile21.xml",FileMode.OpenOrCreate))
{
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(fileStream, loc);
}
}
public static T retrieve()
{
T obj = default(T);
IsolatedStorageFile appStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.User | IsolatedStorageScope.Assembly | IsolatedStorageScope.Domain, null, null);
if (appStore.FileExists("myFile21.xml"))
{
using (IsolatedStorageFileStream fileStream = appStore.OpenFile("myFile21.xml", FileMode.Open))
{
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
try
{
obj = (T)serializer.ReadObject(fileStream);
}
catch (SerializationException e)
{
Console.WriteLine(e.StackTrace);
}
}
}
return obj;
}
}
【问题讨论】:
-
您传入的一个或多个对象是否有可能不可序列化?
-
XML 文件格式不正确是什么意思?您必须如何纠正它才能使其正常工作?