protected virtual IOperand getValueOperand(LambdaExpression expr) { if (!IsValid(expr)) { throw new NonSupportedExpressionException(expr); } var obj = this.getObjectExpression(expr); var valueType = obj.Type; var body = expr.Body as MethodCallExpression; Expression parameterExpression = null; if (body.Method.Name == ReflectionHelper.IncludesMethodName) { parameterExpression = body.Arguments[1]; if (parameterExpression is UnaryExpression && ((UnaryExpression)parameterExpression).NodeType == ExpressionType.Convert) { parameterExpression = ((UnaryExpression)parameterExpression).Operand; } } else { parameterExpression = body.Arguments[0]; } return(operandBuilder.CreateValueOperandForNativeSyntax(parameterExpression, valueType)); }
protected IOperand getValueOperand(LambdaExpression expr) { if (!IsValid(expr)) { throw new NonSupportedExpressionException(expr); } var body = expr.Body as MethodCallExpression; var valueType = body.Object.Type; var parameterExpression = body.Arguments[0]; return(operandBuilder.CreateValueOperandForNativeSyntax(parameterExpression, valueType)); }