懒得勤快 5 years ago
parent
commit
0cf2a66d49
2 changed files with 12 additions and 3 deletions
  1. 7 2
      Masuit.Tools.Abstractions/Reflection/ReflectionUtil.cs
  2. 5 1
      NetCoreTest/Program.cs

+ 7 - 2
Masuit.Tools.Abstractions/Reflection/ReflectionUtil.cs

@@ -98,7 +98,12 @@ namespace Masuit.Tools.Reflection
         {
             var parameter = Expression.Parameter(typeof(T), "e");
             var property = Expression.PropertyOrField(parameter, name);
-            var before = Expression.Lambda(property, parameter).Compile().DynamicInvoke(obj).ToJsonString();
+            var before = Expression.Lambda(property, parameter).Compile().DynamicInvoke(obj);
+            if (value.Equals(before))
+            {
+                return value.ToString();
+            }
+
             if (property.Type.IsGenericType && property.Type.GetGenericTypeDefinition() == typeof(Nullable<>))
             {
                 typeof(T).GetProperty(name)?.SetValue(obj, value);
@@ -109,7 +114,7 @@ namespace Masuit.Tools.Reflection
                 Expression.Lambda(assign, parameter).Compile().DynamicInvoke(obj);
             }
 
-            return before;
+            return before.ToJsonString();
         }
 
         /// <summary>

+ 5 - 1
NetCoreTest/Program.cs

@@ -11,7 +11,11 @@ namespace NetCoreTest
     {
         public static void Main(string[] args)
         {
-            var myClass = new MyClass();
+            var myClass = new MyClass()
+            {
+                MyProperty1 = 1
+            };
+
             myClass.SetProperty(nameof(MyClass.MyProperty1), 1);
             Console.ReadKey();
             var rsaKey = RsaCrypt.GenerateRsaKeys(RsaKeyType.PKCS8, 2048);