From d96d00c97c42eb20265ac5c1f4b0ce7d75329125 Mon Sep 17 00:00:00 2001 From: sunkaixuan <610262374@qq.com> Date: Mon, 29 Apr 2019 17:54:36 +0800 Subject: [PATCH] performance optimization --- Src/Asp.Net/SqlServerTest/Models/Student.cs | 2 +- .../IntegrationServices/SerializeService.cs | 39 +++++++++++-------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Src/Asp.Net/SqlServerTest/Models/Student.cs b/Src/Asp.Net/SqlServerTest/Models/Student.cs index 2ff409787..e27b37a12 100644 --- a/Src/Asp.Net/SqlServerTest/Models/Student.cs +++ b/Src/Asp.Net/SqlServerTest/Models/Student.cs @@ -16,7 +16,7 @@ namespace OrmTest.Models public int? SchoolId { get; set; } public string Name { get; set; } public DateTime? CreateTime { get; set; } - [SugarColumn(IsIgnore=true)] + [SugarColumn(IsIgnore=true,NoSerialize =true)] public int TestId { get; set; } } diff --git a/Src/Asp.Net/SqlSugar/IntegrationServices/SerializeService.cs b/Src/Asp.Net/SqlSugar/IntegrationServices/SerializeService.cs index df7b7c1b1..1a8398c82 100644 --- a/Src/Asp.Net/SqlSugar/IntegrationServices/SerializeService.cs +++ b/Src/Asp.Net/SqlSugar/IntegrationServices/SerializeService.cs @@ -26,7 +26,7 @@ namespace SqlSugar } public class MyContractResolver : Newtonsoft.Json.Serialization.DefaultContractResolver { - + public MyContractResolver() { @@ -35,24 +35,31 @@ namespace SqlSugar protected override IList CreateProperties(Type type, MemberSerialization memberSerialization) { - var list = type.GetProperties() - .Where(x => !x.GetCustomAttributes(true).Any(a => (a is SugarColumn) && ((SugarColumn)a).NoSerialize == true)) - .Select(p => new JsonProperty() - { - PropertyName = p.Name, - PropertyType = p.PropertyType, - Readable = true, - Writable = true, - ValueProvider = base.CreateMemberValueProvider(p) - }).ToList(); - foreach (var item in list) + if (type.IsAnonymousType()||type==UtilConstants.ObjType|| type.Namespace=="SqlSugar"|| type.IsClass()==false) + { + return base.CreateProperties(type, memberSerialization); + } + else { - if (UtilMethods.GetUnderType(item.PropertyType) == UtilConstants.DateType) + var list = type.GetProperties() + .Where(x => !x.GetCustomAttributes(true).Any(a => (a is SugarColumn) && ((SugarColumn)a).NoSerialize == true)) + .Select(p => new JsonProperty() + { + PropertyName = p.Name, + PropertyType = p.PropertyType, + Readable = true, + Writable = true, + ValueProvider = base.CreateMemberValueProvider(p) + }).ToList(); + foreach (var item in list) { - CreateDateProperty(type, item); + if (UtilMethods.GetUnderType(item.PropertyType) == UtilConstants.DateType) + { + CreateDateProperty(type, item); + } } + return list; } - return list; } private static void CreateDateProperty(Type type, JsonProperty item) @@ -66,5 +73,5 @@ namespace SqlSugar } } } - + }