我正在Windows Phone 7 Mango中创建一个应用程序,当我加载应用程序时,MainViewModel使用此函数从隔离存储中的文件加载所有信息:
private ObservableCollection<KasutajadViewModel> LoadUsers()
{
ObservableCollection<KasutajadViewModel> kasutajad = new ObservableCollection<KasutajadViewModel>();
try
{
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (IsolatedStorageFileStream stream = myIsolatedStorage.OpenFile("Kasutajad.xml", FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollection<PiletViewModel>));
//ObservableCollection<KasutajadViewModel> data
kasutajad =
(ObservableCollection<KasutajadViewModel>)serializer.Deserialize(stream);
stream.Close();
}
}
}
catch (Exception)
{
}
return kasutajad;
}
问题是,反序列化器不返回数据。 即使它读取的XML文件是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfKasutajadViewModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<KasutajadViewModel>
<Nimi>Reigo Hein</Nimi>
<Isikukood>96952422597</Isikukood>
</KasutajadViewModel>
</ArrayOfKasutajadViewModel>
这是由SaveUsers函数产生的,但我认为这对于这个问题来说是多余的。 LoadUsers正确加载流,但反序列化不会输出所需的数据。
希望有人能帮助我,谢谢。
答案 0 :(得分:1)
您正在为PiletViewModel
的ObservableCollection创建XmlSerializer,但您正在反序列化KasutajadViewModel
数组。这里存在类型不一致的情况。