把对象序列化到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();
            }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值