|
@@ -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>
|