浏览代码

20250916002 添加Config操作工具类XMLReadWrite

向羽 孟 2 周之前
父节点
当前提交
2f4ed333b8

+ 59 - 0
MvvmScaffoldFrame48.DLL/ConfigTools/XMLReadWrite.cs

@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Xml.Serialization;
+
+namespace MvvmScaffoldFrame48.DLL.ConfigTools
+{
+    public static class XMLReadWrite
+    {
+        /// <summary>
+        /// 序列化对象到XML文件
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="data"></param>
+        /// <param name="filePath"></param>
+        /// <exception cref="InvalidOperationException"></exception>
+        public static void SerializeToXml<T>(T data, string filePath)
+        {
+            try
+            {
+                var serializer = new XmlSerializer(typeof(T));
+                using (var writer = new StreamWriter(filePath))
+                {
+                    serializer.Serialize(writer, data);
+                }
+            }
+            catch (Exception ex)
+            {
+                throw new InvalidOperationException("XML serialization failed", ex);
+            }
+        }
+
+        /// <summary>
+        /// 从XML文件反序列化对象
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="filePath"></param>
+        /// <returns></returns>
+        /// <exception cref="InvalidOperationException"></exception>
+        public static T DeserializeFromXml<T>(string filePath)
+        {
+            try
+            {
+                var serializer = new XmlSerializer(typeof(T));
+                using (var reader = new StreamReader(filePath))
+                {
+                    return (T)serializer.Deserialize(reader);
+                }
+            }
+            catch (Exception ex)
+            {
+                throw new InvalidOperationException("XML deserialization failed", ex);
+            }
+        }
+    }
+}

+ 1 - 0
MvvmScaffoldFrame48.DLL/MvvmScaffoldFrame48.Dll.csproj

@@ -52,6 +52,7 @@
     <Compile Include="CameraTools\HikCamera.cs" />
     <Compile Include="CameraTools\HikVision.cs" />
     <Compile Include="CommunicationTools\ModbusTcpClient.cs" />
+    <Compile Include="ConfigTools\XMLReadWrite.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="UserManager.cs" />
   </ItemGroup>