亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在C#項目中實現對象序列化XML

發布時間:2021-03-03 15:39:52 來源:億速云 閱讀:132 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在C#項目中實現對象序列化XML,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

首先,需要用到的是這兩個命名空間(主要)

using System.Xml;
using System.Xml.Serialization;

然后序列化和反序列化的方式和Json一樣。(后面提供封裝方法)

string result = XmlSerializeHelper.Serialize<test>(new test
      {
        name = "Seven",
        cardId = "663927",
        age = 15,
        currentTime = DateTime.Now
      });
      Console.WriteLine(result);
      test test2 = XmlSerializeHelper.DeSerialize<test>(result);

如何在C#項目中實現對象序列化XML

下面來看封裝類

public class XmlSerializeHelper
  {
    //對象轉XML
    public static string ObjToXml(object obj)
    {
      using (MemoryStream Stream = new MemoryStream())
      {
        XmlSerializer xml = new XmlSerializer(obj.GetType());
        xml.Serialize(Stream, obj);
        Stream.Position = 0;
        StreamReader sr = new StreamReader(Stream);
        return sr.ReadToEnd();
      }

    }

    public static string Serialize<T>(T obj)
    {
      return Serialize<T>(obj, Encoding.UTF8);
    }
    /// <summary> 
    /// 實體對象序列化成xml字符串 
    /// </summary> 
    /// <typeparam name="T"></typeparam> 
    /// <param name="obj"></param> 
    /// <returns></returns> 
    public static string Serialize<T>(T obj, Encoding encoding)
    {
      try
      {
        if (obj == null)
        {
          throw new ArgumentNullException("obj");
        }
        var ser = new XmlSerializer(obj.GetType());
        using (var ms = new MemoryStream())
        {
          using (var writer = new XmlTextWriter(ms, encoding))
          {
            writer.Formatting = Formatting.Indented;
            ser.Serialize(writer, obj);
          }
          var xml = encoding.GetString(ms.ToArray());
          xml = xml.Replace("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"", "");
          xml = xml.Replace("xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"", "");
          xml = Regex.Replace(xml, @"\s{2}", "");
          xml = Regex.Replace(xml, @"\s{1}/>", "/>");
          return xml;
        }
      }
      catch (Exception ex)
      {
        throw ex;
      }
    }
    /// <summary> 
    /// 反序列化xml字符為對象,默認為Utf-8編碼 
    /// </summary> 
    /// <typeparam name="T"></typeparam> 
    /// <param name="xml"></param> 
    /// <returns></returns> 
    public static T DeSerialize<T>(string xml) where T : new()
    {
      return DeSerialize<T>(xml, Encoding.UTF8);
    }
    /// <summary> 
    /// 反序列化xml字符為對象 
    /// </summary> 
    /// <typeparam name="T"></typeparam> 
    /// <param name="xml"></param> 
    /// <param name="encoding"></param> 
    /// <returns></returns> 
    public static T DeSerialize<T>(string xml, Encoding encoding) where T : new()
    {
      try
      {
        var mySerializer = new XmlSerializer(typeof(T));
        using (var ms = new MemoryStream(encoding.GetBytes(xml)))
        {
          using (var sr = new StreamReader(ms, encoding))
          {
            return (T)mySerializer.Deserialize(sr);
          }
        }
      }
      catch (Exception e)
      {
        return default(T);
      }
    }
  }

Class Of XmlSerializeHelper

關于如何在C#項目中實現對象序列化XML就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

xml
AI

邵武市| 安阳县| 古浪县| 夏津县| 富顺县| 鄱阳县| 扶绥县| 诏安县| 彩票| 巧家县| 绥化市| 白水县| 梓潼县| 开化县| 石景山区| 琼结县| 柘城县| 多伦县| 玛纳斯县| 龙州县| 铜山县| 雷波县| 阿尔山市| 开江县| 多伦县| 徐闻县| 阿坝| 桐庐县| 东乡县| 大英县| 全州县| 平利县| 墨玉县| 永平县| 乌拉特中旗| 五寨县| 乡宁县| 中卫市| 邯郸县| 德格县| 汤阴县|