反序列化XML List <mytype> </mytype>

时间:2013-12-19 14:46:17

标签: c# xml

现在我有一个XML文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMyMedia xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <MyMedia>
    <fileName>C:\Users\Yanis\Pictures\Photos\VID_20130704_203538.mp4</fileName>
    <title>VID_20130704_203538.mp4</title>
    <length>0</length>
    <_type>0</_type>
  </MyMedia>
  <MyMedia>
    <fileName>C:\Users\Yanis\Pictures\Photos\VID_20130802_142038.mp4</fileName>
    <title>VID_20130802_142038.mp4</title>
    <length>0</length>
    <_type>0</_type>
  </MyMedia>
</ArrayOfMyMedia>

此XML由此函数生成:

public void WriteXML(List<MyMedia> myMedias)
{

            System.Xml.Serialization.XmlSerializer writer = new System.Xml.Serialization.XmlSerializer(typeof(List<MyMedia>));
            System.IO.StreamWriter file = new System.IO.StreamWriter(
                @"c:\temp\SerializationOverview.xml");
            writer.Serialize(file, myMedias);
            file.Close();
}

当我想要检索类型为List<MyMedias>

的媒体列表时

使用此功能:

 public void LoadXML()
    {
        System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(List<MyMedia>));
        System.IO.StreamReader file = new System.IO.StreamReader(@"c:\temp\SerializationOverview.xml");
        window1.medias = (List<MyMedia>)reader.Deserialize(file);
        for (int i = 0; i < window1.medias.Count; i++)
        {
            window1.mediaList.Items.Add(window1.medias[i]);
        }
    }

这是我的“MyMedia”课程,但它非常简单:

public class MyMedia
    {
        enum type
        {
            MUSIC,
            VIDEO,
            IMAGE
        };

        public String fileName { get; set; }
        public String artist { get; set; }
        public String title { get; set; }
        public int length { get; set; }
        public int _type { get; set; }

        public MyMedia()
        {
        }

        public override string ToString()
        {
            return title;
        }
    }

我的window1.medias变量为空。 任何线索?

编辑:我找到了解决方案,我的“MyMedia”类中有一个字段不在我的.xml文件中。我删除它并且它有效。

0 个答案:

没有答案