protected override Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
 {
     return(HandlebarsExpression.BlockHelper(
                bhex.HelperName,
                bhex.Arguments.Select(arg => Visit(arg)),
                Visit(bhex.Body)));
 }
 protected override Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
 {
     var fb = new FunctionBuilder(_context.Configuration);
     var body = fb.Compile(((BlockExpression)bhex.Body).Expressions, _context.BindingContext);
     var helper = _context.Configuration.BlockHelpers[bhex.HelperName.Replace("#", "")];
     var arguments = new Expression[] {
         Expression.Property(
             _context.BindingContext,
             typeof(BindingContext).GetProperty("TextWriter")),
         body,
         Expression.Property(
             _context.BindingContext,
             typeof(BindingContext).GetProperty("Value")),
         Expression.NewArrayInit(typeof(object), bhex.Arguments)
     };
     if(helper.Target != null)
     {
         return Expression.Call(
             Expression.Constant(helper.Target),
             helper.Method,
             arguments);
     }
     else
     {
         return Expression.Call(
             helper.Method,
             arguments);
     }
 }
        protected override Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
        {
            var fb        = new FunctionBuilder(_context.Configuration);
            var body      = fb.Compile(((BlockExpression)bhex.Body).Expressions, _context.BindingContext);
            var helper    = _context.Configuration.BlockHelpers[bhex.HelperName.Replace("#", "")];
            var arguments = new Expression[] {
                Expression.Property(
                    _context.BindingContext,
                    typeof(BindingContext).GetProperty("TextWriter")),
                body,
                Expression.Property(
                    _context.BindingContext,
                    typeof(BindingContext).GetProperty("Value")),
                Expression.NewArrayInit(typeof(object), bhex.Arguments)
            };

            if (helper.Target != null)
            {
                return(Expression.Call(
                           Expression.Constant(helper.Target),
                           helper.Method,
                           arguments));
            }
            else
            {
                return(Expression.Call(
                           helper.Method,
                           arguments));
            }
        }
 protected override Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
 {
     return HandlebarsExpression.BlockHelper(
         bhex.HelperName,
         bhex.Arguments.Select(arg => Visit(arg)),
         Visit(bhex.Body));
 }
 protected virtual Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
 {
     return bhex;
 }
Пример #6
0
 protected virtual Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
 {
     return(bhex);
 }