2012-02-14 2 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 считывает данные из, как это:

<?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 правильно загружает поток, но десериализация не выводит требуемые данные.

Надеюсь, что кто-нибудь может мне помочь, спасибо.

ответ

1

Вы создаете XmlSerializer для ObservableCollection PiletViewModel, но вы десериализируете массив из KasutajadViewModel. Здесь есть непоследовательность.

Смежные вопросы