22{
33 using System ;
44 using Extensions . Internal ;
5+ using NetStandardPolyfills ;
56#if NET35
67 using Microsoft . Scripting . Ast ;
78#else
@@ -45,7 +46,7 @@ private static void GetMaximumValueComparisonOperands(
4546 out Expression maxValueComparisonLeftSide ,
4647 out Expression maxValueComparisonRightSide )
4748 {
48- var numericMaxValue = Expression . Field ( null , nonNullableTargetType , "MaxValue" ) ;
49+ var numericMaxValue = GetValueConstant ( nonNullableTargetType , "MaxValue" ) ;
4950
5051 if ( sourceValue . Type . HasGreaterMaxValueThan ( nonNullableTargetType ) )
5152 {
@@ -66,7 +67,7 @@ private static void GetMinimumValueComparisonOperands(
6667 out Expression minValueComparisonLeftSide ,
6768 out Expression minValueComparisonRightSide )
6869 {
69- var numericMinValue = Expression . Field ( null , nonNullableTargetType , "MinValue" ) ;
70+ var numericMinValue = GetValueConstant ( nonNullableTargetType , "MinValue" ) ;
7071
7172 if ( sourceValue . Type . HasSmallerMinValueThan ( nonNullableTargetType ) )
7273 {
@@ -79,5 +80,13 @@ private static void GetMinimumValueComparisonOperands(
7980 minValueComparisonRightSide = numericMinValue ;
8081 }
8182 }
83+
84+ private static ConstantExpression GetValueConstant ( Type nonNullableTargetType , string fieldName )
85+ {
86+ return nonNullableTargetType
87+ . GetPublicStaticField ( fieldName )
88+ . GetValue ( null )
89+ . ToConstantExpression ( nonNullableTargetType ) ;
90+ }
8291 }
8392}
0 commit comments