分布式调度 二代征信 validation dictionary button usb vue原理 nodejs视频教程 oracle删除字段sql java算法培训 matlab复数求模 cos图像和sin图像 oracle查询数据库 quartz配置 mysql删除存储过程 python命令行 python获取字典的值 java语言基础教程 java开发环境搭建 java获取当前线程 java原始数据类型 java创建目录 java数组排序 pascal教程 python 教程 dll文件下载 超级煎蛋卷 不寻常的指南针 脚本软件 cmd代码 hexworkshop 银头鲑鱼 视频md5修改器 头条视频解析 win98序列号 黑域使用教程 大势至usb控制系统 dns劫持怎么解决 冬青黑体简体中文 红巨星插件
当前位置: 首页 > 学习教程  > 编程语言

C#XML序列化和反序列化帮助类

2020/7/24 9:28:58 文章标签:

亲测可用:

先上代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Space.XML
{
    public class XmlHelper
    {

        /// <summary>
        /// XML序列化某一类型到指定的文件
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="obj"></param>
        /// <param name="type"></param>
        public static void SerializeToXml<T>(string filePath, T obj)
        {
            try
            {
                using (System.IO.StreamWriter writer = new System.IO.StreamWriter(filePath))
                {
                    System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(T));
                    xs.Serialize(writer, obj);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        /// <summary>
        /// 从某一XML文件反序列化到某一类型
        /// </summary>
        /// <param name="filePath">待反序列化的XML文件名称</param>
        /// <param name="type">反序列化出的</param>
        /// <returns></returns>
        public static T DeserializeFromXml<T>(string filePath)
        {
            try
            {
                //判断文件路径是否存在
                if (!System.IO.File.Exists(filePath))
                    throw new ArgumentNullException(filePath + "不存在!");

                using (System.IO.StreamReader reader = new System.IO.StreamReader(filePath))
                {
                    System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(T));
                    T ret = (T)xs.Deserialize(reader);
                    return ret;
                }
            }
            catch (Exception ex)
            {
                return default(T);
            }
        }
    }
}

其实这个代码在好多网站上可以百度到,我只是整合到一块直接可以用。

                                //保存至XML
                                XmlHelper.SerializeToXml(savePath, pipePointTags);

这个事保存,pipePointTags为以对象,savePath为保存的路径。

序列化后的xml:

//获取xml配置文件
List<PipeTagMode>  pipeTagModes= XmlHelper.DeserializeFromXml<List<PipeTagMode>>(xmlPath);

这个是反序列化Xml,将xml序列化为指定对象。

 

函数中的T为范类型,支持所有对象的序列化和反序列化

 

 

 

本文链接: http://www.dtmao.cc/news_show_50081.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?