protected override Expression VisitMethodCall(MethodCallExpression m) { if (m == _scopeToRewrite) { var forEachRewriterVisitor = new ForEachRewriter(ScopeLevel, _iterator); Expression rewrittenChild = forEachRewriterVisitor.RewriteSubExpression(_htmlBuilder); rewrittenChild = new CurrentItemRewriterVisitor(_iterator, forEachRewriterVisitor.LambdaParameter).Rewrite( rewrittenChild); return CreateAddElementsOnHtmlElement(m.Object, rewrittenChild); } return base.VisitMethodCall(m); }
protected override Expression VisitMethodCall(MethodCallExpression m) { if (m == _scopeToRewrite) { var forEachRewriterVisitor = new ForEachRewriter(ScopeLevel, _iterator); Expression rewrittenChild = forEachRewriterVisitor.RewriteSubExpression(_htmlBuilder); rewrittenChild = new CurrentItemRewriterVisitor(_iterator, forEachRewriterVisitor.LambdaParameter).Rewrite( rewrittenChild); return(CreateAddElementsOnHtmlElement(m.Object, rewrittenChild)); } return(base.VisitMethodCall(m)); }
public Expression<Func<IElement>> RewriteRoot(Expression expr) { Expression rewritten = Visit(expr); if (Iterator != null) { var foreachrewriter = new ForEachRewriter(_scopeLevel, Iterator); rewritten = foreachrewriter.RewriteSubExpression(rewritten); if (foreachrewriter.LambdaParameter != null) rewritten = new CurrentItemRewriterVisitor(foreachrewriter.Iterator, foreachrewriter.LambdaParameter).Rewrite(rewritten); return (Expression<Func<IElement>>)CreateWrapperElement(rewritten); } return (Expression<Func<IElement>>)expr; }
public Expression <Func <IElement> > RewriteRoot(Expression expr) { Expression rewritten = Visit(expr); if (Iterator != null) { var foreachrewriter = new ForEachRewriter(_scopeLevel, Iterator); rewritten = foreachrewriter.RewriteSubExpression(rewritten); if (foreachrewriter.LambdaParameter != null) { rewritten = new CurrentItemRewriterVisitor(foreachrewriter.Iterator, foreachrewriter.LambdaParameter).Rewrite(rewritten); } return((Expression <Func <IElement> >)CreateWrapperElement(rewritten)); } return((Expression <Func <IElement> >)expr); }