马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

XML序列化和反序列化

[复制链接]
查看5363 | 回复1 | 2015-5-11 09:31:25 | 显示全部楼层 |阅读模式
[C#] 纯文本查看 复制代码
public static class XmlHelper
    {
        /// <summary>
        /// 将对象保存为xml文件
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="path">保存文件的路径及文件名如“C:\test.xml”</param>
        /// <param name="obj">要保存对象的实例</param>
        /// <param name="xmlRootName">跟节点名</param>
        public static void EntitySaveToXml<T>(string path, T obj, string xmlRootName =null )
        {
            if (string.IsNullOrEmpty(path))
            {
                throw new ArgumentNullException("path 不能为空!");
            }
            if (obj == null){
                throw new ArgumentNullException("obj 不能为空!");
            }

            using (FileStream fs = new FileStream(path, FileMode.Create))
            {
                var type = typeof(T);
                var xmlSerializer = string.IsNullOrEmpty(xmlRootName) ? new XmlSerializer(type) : new XmlSerializer(type, xmlRootName);
                xmlSerializer.Serialize(fs, obj);
                fs.Close();
                fs.Dispose();
            }
        }

        /// <summary>
        /// 将xml文件发序列化为对象
        /// </summary>
        /// <typeparam name="T">对象类型</typeparam>
        /// <param name="path">xml路径如“C:\test.xml”</param>
        /// <param name="xmlRootName">xml根节点名</param>
        /// <returns>对象实例</returns>
        public static T XmlToEntity<T>(string path, string xmlRootName=null)
        {
            T result;
            if (File.Exists(path))
            {
                using (StreamReader sr = new StreamReader(path))
                {
                    var type = typeof(T);
                    var xmlSerializer = string.IsNullOrEmpty(xmlRootName) ? new XmlSerializer(type) : new XmlSerializer(type, xmlRootName);
                    result = (T)xmlSerializer.Deserialize(sr);
                    sr.Close();
                    sr.Dispose();
                }
            }
            else
            {
                throw new Exception("文件不存在!");
            }
            return result;
        }
    }
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
Ainy | 2016-1-5 15:56:32 | 显示全部楼层
谢谢楼主分享 ~~~~~~~~~~~~~`
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则