作者: wtujoxk
查看: 1099|回复: 2

【序列化】XML 序列化 反序列化

[复制链接]
wtujoxk 发表于 2016-11-28 08:59:05 | 显示全部楼层 |阅读模式
查看: 1099|回复: 2
本帖最后由 wtujoxk 于 2016-11-28 09:50 编辑

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


效果:

XML 序列化 反序列化

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, 下载次数: 17)

评分

参与人数 1金钱 +3 收起 理由
乔克斯 + 3 感谢分享,LZ辛苦了~

查看全部评分

回复 论坛版权

使用道具 举报

chenhao93 发表于 2017-4-23 16:59:52 | 显示全部楼层
thank you !!!!
回复

使用道具 举报

214679 发表于 2018-10-10 09:14:47 | 显示全部楼层
感谢分享!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入CSkin论坛

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2019-7-23 00:12, Processed in 0.779049 second(s), 34 queries , Gzip On.

快速回复 返回顶部 返回列表