| 项目代码/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| 项目代码/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ÏîÄ¿´úÂë/WCS/WCSServer/WIDESEAWCS_Core/Helper/ObjectExtension.cs
@@ -1,4 +1,5 @@ using System; using 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; } ÏîÄ¿´úÂë/WMS/WMSServer/WIDESEA_Core/Helper/ObjectExtension.cs
@@ -1,5 +1,6 @@ using 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;