Ejemplo n.º 1
0
        /// <summary>
        /// Adds parameter to <see cref="BlockExpression"/>
        /// </summary>
        public BlockBuilder Parameter <T>(string name, out ExpressionContainer <T> parameter, ExpressionContainer <T> value)
        {
            var expression = Expression.Parameter(typeof(T), name);

            parameter = ExpressionShortcuts.Arg <T>(expression);
            return(Parameter(parameter, value));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds parameter to <see cref="BlockExpression"/>
        /// </summary>
        public BlockBuilder Parameter <T>(out ExpressionContainer <T> parameter, T value)
        {
            var expression = Expression.Parameter(typeof(T));

            parameter = ExpressionShortcuts.Arg <T>(expression);
            return(Parameter(parameter, ExpressionShortcuts.Arg(value)));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates <see cref="InvocationExpression"/> out of current <see cref="BlockExpression"/>.
        /// </summary>
        public ExpressionContainer <T> Invoke <T>(params ExpressionContainer[] parameters)
        {
            var lambda = Expression.Lambda(Expression, parameters.Select(o => (ParameterExpression)o.Expression));

            return(ExpressionShortcuts.Arg <T>(Expression.Invoke(lambda)));
        }