我有一个xml文件如下:
<xmlRoot>
<num>1</num>
<person>
///person information
</person><person>
///person information
</person>
.....
</xmlRoot>
这能用序列化的方式读入吗?
我定义了一个class:
{
public int num;
public List<person> PersonLst;
}
但是写到文件中是
<PersonLst>
  <person>
     ....
  </person>
  ...
</PersonLst>与我期望的不同,有什么办法解决吗?谢谢!

解决方案 »

  1.   

    namespace XmlSerializerTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                var test = new Test();
                test.PersonList = new List<Person> 
                                  { 
                                      new Person { Name = "zhangsan" }, 
                                      new Person { Name = "lisi" }
                                  };
                var xmlSer = new XmlSerializer(typeof(Test));
                using (var fs = File.OpenWrite("test.xml"))
                {
                    xmlSer.Serialize(fs, test);
                }
            }
        }    [XmlRoot(ElementName="XmlRoot")]
        public class Test
        {
            public int Num { get; set; }
            
            [XmlElement(ElementName="Person",Type=typeof(Person))]
            public List<Person> PersonList { get; set; }
        }    public class Person
        {
            public string Name { get; set; }
        }
    }
      

  2.   

    借用下机器人的类
        protected void Button1_Click(object sender, EventArgs e)
        {
            Test t = new Test();
            t.Num = 1;
            t.PersonList = new List<Person> { new Person { Name = "csdn" }, new Person { Name = "床上等你" } };
            XmlSerializer xml = new XmlSerializer(t.GetType());
            FileStream fs = new FileStream(Server.MapPath("person.xml"), FileMode.Create);
            xml.Serialize(fs, t);
            fs.Close();
            fs.Dispose();
        }
        [XmlRoot(ElementName = "XmlRoot")]
        public class Test
        {
            public int Num { get; set; }        [XmlElement(ElementName = "Person", Type = typeof(Person))]
            public List<Person> PersonList { get; set; }
        }    public class Person
        {
            public string Name { get; set; }
        }
    /*<?xml version="1.0"?>
    <XmlRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <Num>1</Num>
      <Person>
        <Name>csdn</Name>
      </Person>
      <Person>
        <Name>床上等你</Name>
      </Person>
    </XmlRoot>*/