25 lines
1.0 KiB
C#
25 lines
1.0 KiB
C#
![]() |
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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|