2023-11-21 23:05:03 +08:00

22 lines
799 B
C#

using System;
using System.Linq.Expressions;
namespace CPF.Windows.Json.Serializer
{
[ExpressionBuildType(SerializerBuildTypeEnum.Lazy)]
internal class LazyBuild : ExpressionJsonFormatter
{
internal static Expression Build(Type type, ParameterExpression instanceArg)
{
Expression orginal = ExpressionMembers.GetMethodCall(type.GetGenericArguments()[0], Expression.MakeMemberAccess(instanceArg, type.GetProperty("Value")));
return Expression.IfThenElse(
Expression.Equal(instanceArg, Expression.Constant(null,type)),
ExpressionMembers.Append("null")
,
//para.value
orginal
);
}
}
}