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 +++++++++++++++++++----
项目代码/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs | 59 ++++++++++++++++++++++-------
2 files changed, 84 insertions(+), 23 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;
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs"
index 1707c35..006dda8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs"
@@ -1,5 +1,6 @@
锘縰sing Microsoft.Extensions.Primitives;
using Microsoft.IdentityModel.Tokens;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -23,26 +24,56 @@
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);
- foreach (var property in propertyInfos)
+ #region
+ //T model = Activator.CreateInstance<T>();
+ //PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance);
+ //foreach (var property in propertyInfos)
+ //{
+ // 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;
+ // }
+ // }
+ // }
+ // // 妫�鏌ユ槸鍚︿负绌哄瓧绗︿覆
+ // if (!string.IsNullOrEmpty(value?.ToString()))
+ // {
+ // // 灏嗗�艰浆鎹负灞炴�х殑绫诲瀷骞惰缃睘鎬у��
+ // property.SetValue(model, value.ChangeType(property.PropertyType));
+ // }
+ //}
+ //return model;
+ #endregion
+
+ T? model = Activator.CreateInstance<T>();
+ try
{
- object value = null;
- if (!dic.TryGetValue(property.Name, 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)
{
- if (!dic.TryGetValue(property.Name.FirstLetterToUpper(), out value))
+ object value = null;
+ if (!dic.TryGetValue(property.Name, out value))
{
- if (!dic.TryGetValue(property.Name.FirstLetterToLower(), out value))
+ if (!dic.TryGetValue(property.Name.FirstLetterToUpper(), out value))
{
- continue;
+ if (!dic.TryGetValue(property.Name.FirstLetterToLower(), out value))
+ {
+ continue;
+ }
}
}
- }
- // 妫�鏌ユ槸鍚︿负绌哄瓧绗︿覆
- if (!string.IsNullOrEmpty(value?.ToString()))
- {
- // 灏嗗�艰浆鎹负灞炴�х殑绫诲瀷骞惰缃睘鎬у��
- property.SetValue(model, value.ChangeType(property.PropertyType));
+ ;
+ property.SetValue(model, value?.ToString().ChangeType(property.PropertyType));
}
}
return model;
--
Gitblit v1.9.3