WP7 - десериализация файла XML в изолированном хранилище - PullRequest
0 голосов
/ 14 февраля 2012

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

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

1 Ответ

1 голос
/ 14 февраля 2012

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

...