@@ -170,7 +170,7 @@ public static IProjection FindMemberProjection(Expression expression)
170
170
{
171
171
UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
172
172
173
- if ( unaryExpression . NodeType != ExpressionType . Convert )
173
+ if ( ! IsConversion ( unaryExpression . NodeType ) )
174
174
throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
175
175
176
176
return FindMemberProjection ( unaryExpression . Operand ) ;
@@ -212,7 +212,7 @@ public static string FindMemberExpression(Expression expression)
212
212
213
213
return FindMemberExpression ( memberExpression . Expression ) + "." + memberExpression . Member . Name ;
214
214
}
215
- else if ( memberExpression . Expression . NodeType == ExpressionType . Convert )
215
+ else if ( IsConversion ( memberExpression . Expression . NodeType ) )
216
216
{
217
217
return ( FindMemberExpression ( memberExpression . Expression ) + "." + memberExpression . Member . Name ) . TrimStart ( '.' ) ;
218
218
}
@@ -226,7 +226,7 @@ public static string FindMemberExpression(Expression expression)
226
226
{
227
227
UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
228
228
229
- if ( unaryExpression . NodeType != ExpressionType . Convert )
229
+ if ( ! IsConversion ( unaryExpression . NodeType ) )
230
230
throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
231
231
232
232
return FindMemberExpression ( unaryExpression . Operand ) ;
@@ -302,7 +302,7 @@ private static System.Type FindMemberType(Expression expression)
302
302
{
303
303
UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
304
304
305
- if ( unaryExpression . NodeType != ExpressionType . Convert )
305
+ if ( ! IsConversion ( unaryExpression . NodeType ) )
306
306
throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
307
307
308
308
return FindMemberType ( unaryExpression . Operand ) ;
@@ -340,7 +340,7 @@ private static bool IsMemberExpression(Expression expression)
340
340
{
341
341
UnaryExpression unaryExpression = ( UnaryExpression ) expression ;
342
342
343
- if ( unaryExpression . NodeType != ExpressionType . Convert )
343
+ if ( ! IsConversion ( unaryExpression . NodeType ) )
344
344
throw new Exception ( "Cannot interpret member from " + expression . ToString ( ) ) ;
345
345
346
346
return IsMemberExpression ( unaryExpression . Operand ) ;
@@ -375,6 +375,11 @@ private static bool IsMemberExpression(Expression expression)
375
375
return false ;
376
376
}
377
377
378
+ private static bool IsConversion ( ExpressionType expressionType )
379
+ {
380
+ return ( expressionType == ExpressionType . Convert || expressionType == ExpressionType . ConvertChecked ) ;
381
+ }
382
+
378
383
private static object ConvertType ( object value , System . Type type )
379
384
{
380
385
if ( value == null )
0 commit comments