CSkin博客

标题: 【序列化】XML 序列化 反序列化 [打印本页]

作者: wtujoxk    时间: 2016-11-28 08:59
标题: 【序列化】XML 序列化 反序列化
本帖最后由 wtujoxk 于 2016-11-28 09:50 编辑

说明:
XML的序列化和反序列化,会在Debug下保存Test.xml文件


效果:




代码:
[C#] 纯文本查看 复制代码

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace XML_Serialize
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Information> serList = new List<Information>();
            string path = @"Test.xml";
            //赋值
            for (int i = 0; i < 5; i++)
            {
                serList.Add(new Information("名字" + i, 20 + i));
            }
            XMLSerialize(serList, path);
            List<Information> serTest = XMLDeserialize<List<Information>>(path);
            //输出返回的值
            foreach (var temp in serTest)
            {
                Console.WriteLine(temp.name);
                Console.WriteLine(temp.age);
            }
            Console.ReadKey();
        }
        //序列化
        static void XMLSerialize<T>(T obj, string path)
        {
            XmlSerializer xs = new XmlSerializer(typeof (T));
            Stream fs = new FileStream(path, FileMode.Create, FileAccess.ReadWrite);
            xs.Serialize(fs, obj);
            fs.Flush();
            fs.Close();
            fs.Dispose();
        }
        //反序列化
        static T XMLDeserialize<T>(string path)
        {
            XmlSerializer xs = new XmlSerializer(typeof (T));
            Stream fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite);
            T serTest = (T) xs.Deserialize(fs);
            fs.Flush();
            fs.Close();
            fs.Dispose();
            return serTest;
        }
    }
}
[XmlType("人员信息")]
public class Information
{
    [XmlAttribute("名字")] public string name;
    [XmlAttribute("年龄")] public int age;
    public Information(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
    //必须要有
    public Information()
    {
    }
}



XML_Serialize.rar (29.65 KB, 下载次数: 30)







作者: chenhao93    时间: 2017-4-23 16:59
thank you !!!!
作者: 214679    时间: 2018-10-10 09:14
感谢分享!!
作者: 222103    时间: 2019-10-5 21:32
现在好像用的少
作者: blackcatabc    时间: 2020-9-25 16:27
谢谢分享




欢迎光临 CSkin博客 (http://bbs.cskin.net/) Powered by Discuz! X3.2