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; } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架