@@ -88,6 +88,17 @@ public class CustomClassWithMethodWithDynamicLinqTypeAttribute
8888        public  int  GetAge ( int  x )  =>  x ; 
8989    } 
9090
91+     [ DynamicLinqType ] 
92+     public  interface  ICustomInterfaceWithMethodWithDynamicLinqTypeAttribute 
93+     { 
94+         int  GetAge ( int  x ) ; 
95+     } 
96+ 
97+     public  class  CustomClassImplementingInterface  :  ICustomInterfaceWithMethodWithDynamicLinqTypeAttribute 
98+     { 
99+         public  int  GetAge ( int  x )  =>  x ; 
100+     } 
101+ 
91102    [ DynamicLinqType ] 
92103    public  class  CustomClassWithStaticMethodWithDynamicLinqTypeAttribute 
93104    { 
@@ -1057,7 +1068,7 @@ public void DynamicExpressionParser_ParseLambda_CustomStaticMethod_WhenClassHasD
10571068        // Act 
10581069        var  lambdaExpression  =  DynamicExpressionParser . ParseLambda ( typeof ( CustomClassWithStaticMethodWithDynamicLinqTypeAttribute ) ,  null ,  expression ) ; 
10591070        var  del  =  lambdaExpression . Compile ( ) ; 
1060-         var  result  =  ( int ) del . DynamicInvoke ( context ) ; 
1071+         var  result  =  ( int ? ) del . DynamicInvoke ( context ) ; 
10611072
10621073        // Assert 
10631074        Check . That ( result ) . IsEqualTo ( 10 ) ; 
@@ -1073,12 +1084,28 @@ public void DynamicExpressionParser_ParseLambda_CustomMethod_WhenClassHasDynamic
10731084        // Act 
10741085        var  lambdaExpression  =  DynamicExpressionParser . ParseLambda ( typeof ( CustomClassWithMethodWithDynamicLinqTypeAttribute ) ,  null ,  expression ) ; 
10751086        var  del  =  lambdaExpression . Compile ( ) ; 
1076-         var  result  =  ( int ) del . DynamicInvoke ( context ) ; 
1087+         var  result  =  ( int ? ) del . DynamicInvoke ( context ) ; 
10771088
10781089        // Assert 
10791090        Check . That ( result ) . IsEqualTo ( 10 ) ; 
10801091    } 
10811092
1093+     [ Fact ] 
1094+     public  void  DynamicExpressionParser_ParseLambda_CustomInterface_WhenInterfaceHasDynamicLinqTypeAttribute_ShouldWorkCorrect ( ) 
1095+     { 
1096+         // Arrange 
1097+         var  context  =  new  CustomClassImplementingInterface ( ) ; 
1098+         var  expression  =  $ "{ nameof ( ICustomInterfaceWithMethodWithDynamicLinqTypeAttribute . GetAge ) } (10)"; 
1099+ 
1100+         // Act 
1101+         var  lambdaExpression  =  DynamicExpressionParser . ParseLambda ( typeof ( ICustomInterfaceWithMethodWithDynamicLinqTypeAttribute ) ,  null ,  expression ) ; 
1102+         var  del  =  lambdaExpression . Compile ( ) ; 
1103+         var  result  =  ( int ? ) del . DynamicInvoke ( context ) ; 
1104+ 
1105+         // Assert 
1106+         result . Should ( ) . Be ( 10 ) ; 
1107+     } 
1108+ 
10821109    [ Fact ] 
10831110    public  void  DynamicExpressionParser_ParseLambda_CustomMethod_WhenClassDoesNotHaveDynamicLinqTypeAttribute_ShouldThrowException ( ) 
10841111    { 
0 commit comments