2012-02-14 130 views
0

我在Windows Phone 7 Mango中創建了一個應用程序,當我加載應用程序時,MainViewModel使用此函數從隔離存儲中的文件加載所有信息:WP7 - 反序列化隔離存儲中的XML文件

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文件是這樣的:這是由SaveUsers函數產生的,但我認爲這是多餘的問題

<?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>  

。 LoadUsers正確加載流,但反序列化不輸出所需的數據。

希望任何人都可以幫助我,謝謝。

回答

1

您正在爲ObservableCollection的PiletViewModel創建XmlSerializer,但是您正在反序列化KasutajadViewModel的數組。這裏有一個類型不一致。