From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
SimpleUtil/HMI.Simple.Util/XmlHelper.cs | 93 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/SimpleUtil/HMI.Simple.Util/XmlHelper.cs b/SimpleUtil/HMI.Simple.Util/XmlHelper.cs
new file mode 100644
index 0000000..b8661a9
--- /dev/null
+++ b/SimpleUtil/HMI.Simple.Util/XmlHelper.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.IO;
+using System.Reflection;
+using System.Xml;
+using System.Xml.Serialization;
+
+namespace HMI.Simple.Util
+{
+ public static class XmlHelper
+ {
+
+ static readonly XmlSerializerNamespaces DEFAULT_NS = new XmlSerializerNamespaces();
+
+ static XmlHelper()
+ {
+ DEFAULT_NS.Add("", "");
+ }
+
+ /// <summary>
+ /// serialize object to xml file.
+ /// </summary>
+ /// <param name="path">the path to save the xml file</param>
+ /// <param name="obj">the object you want to serialize</param>
+ public static void SerializeToXml(string path, object obj)
+ {
+ XmlSerializer serializer = new XmlSerializer(obj.GetType());
+ string content = string.Empty;
+ //serialize
+ using (StringWriter writer = new StringWriter())
+ {
+ serializer.Serialize(writer, obj, DEFAULT_NS);
+ content = writer.ToString();
+ }
+ //save to file
+ using (StreamWriter stream_writer = new StreamWriter(path))
+ {
+ stream_writer.Write(content);
+ }
+ }
+
+ /// <summary>
+ /// xml 鏂囦欢鍙嶅簭鍒楀寲涓哄璞�
+ /// </summary>
+ /// <typeparam name="T">搴忓垪鍖栫被鍨�</typeparam>
+ /// <param name="path">the path of the xml file</param>
+ /// <returns>瀵硅薄</returns>
+ public static T DeserializeFromXml<T>(string path)
+ {
+ XmlSerializer serializer = new XmlSerializer(typeof(T));
+ using (StreamReader reader = new StreamReader(path))
+ {
+ return (T)serializer.Deserialize(reader);
+ }
+ }
+ public static bool ReadFromXml<T>(T obj, string path)
+ {
+ XmlDocument xd = new XmlDocument();
+ xd.Load(path);
+
+ Type type = typeof(T);
+ XmlNode root = xd.SelectSingleNode(type.Name);
+ if (root == null)
+ {
+ return false;
+ }
+
+ //鑾峰彇 RefHero 涓墍鏈夌殑瀹炰緥绉佹湁瀛楁
+ FieldInfo[] fieldArray = type.GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);
+ foreach (FieldInfo filed in fieldArray)
+ {
+ string fileName = filed.Name;
+ XmlNode node = root.SelectSingleNode(fileName);
+ if (node == null)
+ {
+ continue;
+ }
+ filed.SetValue(obj, node.InnerText);
+ }
+ return true;
+ }
+
+ public static T DeepClone<T>(T data)
+ {
+ using (MemoryStream stream = new MemoryStream())
+ {
+ XmlSerializer serializer = new XmlSerializer(typeof(T));
+ serializer.Serialize(stream, data);
+ stream.Seek(0, SeekOrigin.Begin);
+ return (T)serializer.Deserialize(stream);
+ }
+ }
+ }
+}
--
Gitblit v1.9.1