把對象序列化到XML文件及從XML文件反序列化到對象

 

     直接上代碼: 

     1,構建對象:

    public class Student
        {
        public int ID { get; set; }

        public string Name { get; set; }

        public int Age { get; set; }

        public string Sex { get; set; }
        }

    public class Country
        {
        public long peoples { get; set; }
        public string name { get; set; }
        public string air { get; set; }
        public string capital { get; set; }

        }

    public class Config
        {
        public Student student;
        public Country country;

        }

     2, 添加引用 :using System.Xml.Serialization;

     3,序列化到文件的方法:

       public static void WriteXMLFile(string fileName, object data)
            {
            using(FileStream fs = new FileStream(fileName, FileMode.Create))  // 寫到XML
                {
                XmlSerializer formatter = new XmlSerializer(typeof(Config),new Type[] { });

                formatter.Serialize(fs, data);
                }
            }

    4,初始化對象 序列化到文件中:

            Config config = new Config();
            config.student = new Student() { ID = 1, Name = "武松", Age = 250, Sex = "男" };
            config.country = new Country() { peoples = 120000, name = "魏國", air = "999", capital = "許昌" };

             WriteXMLFile("XML_File.xml", config);

    5,從文件中反序列化出來:

       public static Config ReadXMLFile(string fileName)
            {

            Config t = null;

            using(FileStream fs = new FileStream(fileName, FileMode.Open))
                {
                XmlSerializer formatter = new XmlSerializer(typeof(Config),new Type[] { });

                t = (Config)formatter.Deserialize(fs);
                }

            return t;
            }

  

    6,用法

 

 

     static void Main(string[] args)
            {          

            Config config = new Config();
            config.student = new Student() { ID = 1, Name = "武松", Age = 250, Sex = "男" };
            config.country = new Country() { peoples = 120000, name = "魏國", air = "999", capital = "許昌" };

             WriteXMLFile("XML_File.xml", config);//序列化到文件

 

          //從文件 反序列化到對象   

           Config readXML = ReadXMLFile("XML_File.xml");

            Console.WriteLine("Read xml data:  \r\n");
            Console.WriteLine(readXML.student.ID);
            Console.WriteLine(readXML.student.Name);
            Console.WriteLine(readXML.student.Age);
            Console.WriteLine(readXML.student.Sex);

            Console.WriteLine("\r\n");

            Console.WriteLine(readXML.country.name);
            Console.WriteLine(readXML.country.peoples);
            Console.WriteLine(readXML.country.air);
            Console.WriteLine(readXML.country.capital);

            Console.ReadLine();
            }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章