作者: wtujoxk
查看: 2702|回复: 4
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
wtujoxk 发表于 2016-11-28 08:59:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
查看: 2702|回复: 4
本帖最后由 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)






评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 转播转播
回复 论坛版权

使用道具 举报

沙发
chenhao93 发表于 2017-4-23 16:59:52 | 只看该作者
thank you !!!!
回复

使用道具 举报

板凳
214679 发表于 2018-10-10 09:14:47 | 只看该作者
感谢分享!!
回复

使用道具 举报

地板
222103 发表于 2019-10-5 21:32:04 | 只看该作者
现在好像用的少
5#
blackcatabc 发表于 2020-9-25 16:27:18 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

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

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-4-26 13:32, Processed in 0.578683 second(s), 34 queries , Gzip On.

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