• 公用类库(5) Xml操作辅助类XmlUtil


      Xml操作辅助类主要包括两大操作,Xml的序列化与反序列化。代码如下:

    namespace Tmac.Utilities
    {
        /// <summary>
        /// Xml操作类
        /// </summary>
        public class XmlUtil
        {
            /// <summary>
            /// 序列化对象为xml(或字节流)
            /// </summary>
            /// <param name="obj"></param>
            /// <returns></returns>
            public static string XmlSerialize(object obj)
            {
                string result = null;
    
                try
                {
                    XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());
                    using (MemoryStream stream = new MemoryStream())
                    {
                        XmlTextWriter xmlTextWriter = new XmlTextWriter(stream, new UTF8Encoding(false));
                        xmlTextWriter.Formatting = Formatting.Indented;
                        xmlSerializer.Serialize(xmlTextWriter, obj);
                        xmlTextWriter.Flush();
                        xmlTextWriter.Close();
                        UTF8Encoding uTF8Encoding = new UTF8Encoding(false, true);
                        result = uTF8Encoding.GetString(stream.ToArray());
                    }
    
                }
                catch (Exception ex)
                {
                    throw new Exception("Couldn't serialize object:"+obj.GetType().Name,ex);
                }
                return result;
            }
    
            /// <summary>
            /// 反序列xml为对象
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="type"></param>
            /// <param name="xmlPath"></param>
            /// <returns></returns>
            public static T XmlDeserialize<T>(Type type,string xmlPath)
            { 
                T obj=default(T);
    
                XmlSerializer xmlSerializer = new XmlSerializer(type);
                try
                {
                    using (StreamReader sr = new StreamReader(xmlPath))
                    {
                        obj=(T)xmlSerializer.Deserialize(sr);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(String.Format("Couldn't parse xml:{0};Type:{1}",xmlPath,type.FullName), ex);
                }
                return obj;
            }
        }
    }
  • 相关阅读:
    Linux运维笔记
    回到顶部过渡js代码
    好想你红枣
    鼠标点击区域问题
    ie6 hover 子元素无效bug
    IE6和7下text-indent导致inline-block标签消失的bug
    星星评分js代码
    洛谷P3147 [USACO16OPEN]262144 2048 合并 倍增 动归 递推
    洛谷P1114 “非常男女”计划
    洛谷P1108 低价购买 动态规划
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2970239.html
Copyright © 2020-2023  润新知