• 通用类 对象和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     }
  • 相关阅读:
    Go基础系列:双层channel用法示例
    shell脚本动画小工具
    Go基础系列:channel入门
    python面向对象入门(1):从代码复用开始
    python包导入细节
    python模块导入细节
    Go基础系列:读取标准输入
    黄聪:C#获取网页HTML内容的三种方式
    黄聪:如何正确在Vue框架里使用Swiper
    黄聪:C#使用GeckoFx拦截监控Http数据
  • 原文地址:https://www.cnblogs.com/lsgControl/p/9579757.html
Copyright © 2020-2023  润新知