コード例 #1
0
        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);
        }