25 lines
1.0 KiB
C#
Raw Normal View History

2023-11-21 23:05:03 +08:00
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace CPF.Windows.Json.Serializer
{
[ExpressionBuildType(SerializerBuildTypeEnum.WrongGenericKey)]
internal class WrongGenericKeyBuild : ExpressionJsonFormatter
{
internal static Expression Build(Type type, ParameterExpression instanceArg)
{
List<Expression> expressions = new List<Expression>();
if (!type.IsValueType)
expressions.Add(Expression.IfThen(
Expression.Equal(instanceArg, Expression.Constant(null,type)),
Expression.Block(ExpressionMembers.Append("null"),
Expression.Return(ExpressionMembers.ReturnLable)
)));
expressions.Add(ExpressionMembers.Append("{}"));
expressions.Add(Expression.Label(ExpressionMembers.ReturnLable));
return Expression.Block(expressions);
}
}
}