zoukankan      html  css  js  c++  java
  • 通用类 对象和XML互转

     1 public class XMLHealper
     2     {
     3         /// <summary>
     4         /// 将自定义对象序列化为XML字符串
     5         /// </summary>
     6         /// <param name="myObject">自定义对象实体</param>
     7         /// <returns>序列化后的XML字符串</returns>
     8         public static string SerializeToXml<T>(T myObject)
     9         {
    10             if (myObject != null)
    11             {
    12                 XmlSerializer xs = new XmlSerializer(typeof(T));
    13 
    14                 MemoryStream stream = new MemoryStream();
    15                 XmlTextWriter writer = new XmlTextWriter(stream, Encoding.UTF8);
    16                 writer.Formatting = Formatting.None;//缩进
    17                 xs.Serialize(writer, myObject);
    18 
    19                 stream.Position = 0;
    20                 StringBuilder sb = new StringBuilder();
    21                 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
    22                 {
    23                     string line;
    24                     while ((line = reader.ReadLine()) != null)
    25                     {
    26                         sb.Append(line);
    27                     }
    28                     reader.Close();
    29                 }
    30                 writer.Close();
    31                 return sb.ToString();
    32             }
    33             return string.Empty;
    34         }
    35 
    36         /// <summary>
    37         /// 将XML字符串反序列化为对象
    38         /// </summary>
    39         /// <typeparam name="T">对象类型</typeparam>
    40         /// <param name="xmlContent">XML字符</param>
    41         /// <returns></returns>
    42         public static T DeserializeToObject<T>(string xmlContent)
    43         {
    44             T myObject;
    45             XmlSerializer serializer = new XmlSerializer(typeof(T));
    46             StringReader reader = new StringReader(xmlContent);
    47             myObject = (T)serializer.Deserialize(reader);
    48             reader.Close();
    49             return myObject;
    50         }
    51 
    52         public static T RreadXML<T>(string filePath)
    53         {
    54             return DeserializeToObject<T>(FileHelper.ReadFile(filePath));
    55         }
    56         public static bool WriteXML(string xmlContent,string filePath)
    57         {
    58             return FileHelper.WriteFile(xmlContent, filePath);
    59         }
    60         public static bool WriteXML<T>(T contentModel,string filePath)
    61         {
    62             string xmlContent = SerializeToXml<T>(contentModel);
    63             return FileHelper.WriteFile(xmlContent, filePath);
    64         }
    65 
    66     }
  • 相关阅读:
    Logging模块
    uWSGI和WSGI区别
    python内置函数getattr用法
    linux 升级python2.7
    JavaScript中判断null、undefined与NaN的方法
    python计算两个数的百分比
    BeautifulSoup中查找元素 select() 和find()区别
    Windows系统以及谷歌浏览器快捷键,控制台常用命令
    自己看源码的一些方法和心得分享
    JDK源码之AbstractStringBuilder类分析
  • 原文地址:https://www.cnblogs.com/lsgControl/p/9579757.html
Copyright © 2011-2022 走看看