zoukankan      html  css  js  c++  java
  • C# XML序列化和反序列化

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Xml.Serialization;
    
    namespace SunCreate.ConfirmingSecrecyMS.DistributedService
    {
        public class XmlHelp
        {
    
            /// <summary>
            /// 序列化对象
            /// </summary>
            /// <typeparam name="T">对象类型</typeparam>
            /// <param name="Entity">对象</param>
            /// <param name="Path">xml存放路径</param>
            public static void XmlSerialize<T>(T Entity,string Path) where T:class
            {
                if(string.IsNullOrEmpty(Path))
                {
                    return;
                }
                string FileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".xml";
                string BasePath = System.IO.Path.Combine(Path, "Usual");
                if (!System.IO.Directory.Exists(BasePath))
                {
                    System.IO.Directory.CreateDirectory(BasePath);
                }
                string FileFullPath = System.IO.Path.Combine(BasePath, FileName);
                try
                {
                    using (StreamWriter sw = new StreamWriter(FileFullPath))
                    {
                        XmlSerializer Serializer = new XmlSerializer(typeof(T));
                        Serializer.Serialize(sw, Entity);
                        sw.Close();
                    }
                }
                catch(Exception ex)
                {
                }
            }
    
    
            /// <summary>
            /// 反序列化xml
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="FileFullPath"></param>
            /// <returns></returns>
            public static T XmlDeserialize<T>(string FileFullPath) where T:class
            {
                if (!File.Exists(FileFullPath))
                {
                    return null;
                }
                try
                {
                    using (StreamReader sr = new StreamReader(FileFullPath))
                    {
                        XmlSerializer Serializer = new XmlSerializer(typeof(T));
                        object Result = Serializer.Deserialize(sr) ;
                        sr.Close();
                        return Result as T;
                    }
                }
                catch
                {
                    return null;
                }
            }
        }
    }

    调用方法:

    //序列化
    XmlHelp.XmlSerialize<CatalogInfo>(new CatalogInfo(), this.m_StrRootDirPath); 

    //反序列化
    CatalogInfo clsCataInfo = XmlHelp.XmlDeserialize<CatalogInfo>(
    this.m_StrRootDirPath);
    public class CatalogInfo
    {
    }
  • 相关阅读:
    前端开发-学习资料库
    前端数据校验从建模开始
    让 Markdown 中的代码可以实时运行
    小而美的 React Form 组件
    React 实现一个漂亮的 Table
    RSuite 一个基于 React.js 的 Web 组件库
    管理系统的前端解决方案:Pagurian V1.3发布
    selenium java 自动化测试 基于火狐浏览器/谷歌浏览器
    java从ldap中导出数据到ldif文件中
    根据官方文档搭建springcloud之eureka
  • 原文地址:https://www.cnblogs.com/SuperMetalMax/p/6187274.html
Copyright © 2011-2022 走看看