【问题标题】:WP7 - Deserializing a XML file in isolated storageWP7 - 在隔离存储中反序列化 XML 文件
【发布时间】:2012-02-14 12:09:00
【问题描述】:

我正在 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 正确加载了流,但是反序列化没有输出需要的数据。

希望有人能帮助我,谢谢。

【问题讨论】:

    标签: c# .net windows-phone-7 xml-deserialization


    【解决方案1】:

    您正在为 PiletViewModel 的 ObservableCollection 创建 XmlSerializer,但您正在反序列化 KasutajadViewModel 的数组。这里存在类型不一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多