From 7a663544bda26aaabcad039c726b87d0c65be5f0 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期二, 17 三月 2026 16:34:45 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs |   48 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 39 insertions(+), 9 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs"
index 6e000c3..55f95d4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing Newtonsoft.Json;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection;
@@ -21,19 +22,48 @@
 
         public static T DicToModel<T>(this Dictionary<string, object> dic)
         {
-            T model = Activator.CreateInstance<T>();
-            PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);
+            #region
+            //T model = Activator.CreateInstance<T>();
+            //PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);
 
-            Dictionary<string, object> upperDic = dic.ToDictionary(k => k.Key.ToUpper(), v => v.Value);
+            //Dictionary<string, object> upperDic = dic.ToDictionary(k => k.Key.ToUpper(), v => v.Value);
 
-            foreach (var property in propertyInfos)
+            //foreach (var property in propertyInfos)
+            //{
+            //    object value = null;
+            //    if (!upperDic.TryGetValue(property.Name.ToUpper(), out value))
+            //    {
+            //        continue;
+            //    }
+            //    property.SetValue(model, value?.ToString().ChangeType(property.PropertyType));
+            //}
+            //return model;
+            #endregion
+
+            T? model = Activator.CreateInstance<T>();
+            try
             {
-                object value = null;
-                if (!upperDic.TryGetValue(property.Name.ToUpper(), out value))
+                model = JsonConvert.DeserializeObject<T>(dic.Serialize());
+            }
+            catch{ }
+            if (model == null)
+            {
+                PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);
+                foreach (var property in propertyInfos)
                 {
-                    continue;
+                    object value = null;
+                    if (!dic.TryGetValue(property.Name, out value))
+                    {
+                        if (!dic.TryGetValue(property.Name.FirstLetterToUpper(), out value))
+                        {
+                            if (!dic.TryGetValue(property.Name.FirstLetterToLower(), out value))
+                            {
+                                continue;
+                            }
+                        }
+                    };
+                    property.SetValue(model, value?.ToString().ChangeType(property.PropertyType));
                 }
-                property.SetValue(model, value?.ToString().ChangeType(property.PropertyType));
             }
             return model;
         }

--
Gitblit v1.9.3