protected override Expression VisitMethodCall(MethodCallExpression mExpr) { var interceptor = InterceptorFactory.FindInterceptor(mExpr); if (interceptor != null) { interceptor.Intercept(Result, mExpr, (expr) => Visit(expr)); } else { var compiled = Expression.Lambda(mExpr).Compile(); var constantExpression = Expression.Constant(compiled.DynamicInvoke(), mExpr.Type); Visit(constantExpression); } return(mExpr); }