Exemplo n.º 1
0
        public override MemberBinding CreateExpression(ref BindingParameter _params)
        {
            var configureParameter = PopConfigureParameter(ref _params);

            return(configureParameter == null ? null :
                   Expression.Bind(PropertyInfo, Configure.CreateObjectExpression(configureParameter)));
        }
Exemplo n.º 2
0
        public object PopParameter(ref BindingParameter _params)
        {
            var p = _params.Parameters.FirstOrDefault();

            _params.Parameters.RemoveAt(0);
            return(p);
        }
Exemplo n.º 3
0
        public BindingParameter PopConfigureParameter(ref BindingParameter _params)
        {
            var cp = _params.ArrayParameters.FirstOrDefault();

            if (cp != null)
            {
                _params.ArrayParameters.RemoveAt(0);
            }
            return(cp);
        }
Exemplo n.º 4
0
        public List <object> PopParameters(ref BindingParameter _params)
        {
            var cp = _params.ArrayParameters.FirstOrDefault();

            if (cp == null)
            {
                return(null);
            }

            _params.ArrayParameters.RemoveAt(0);
            return(cp.Parameters);
        }
Exemplo n.º 5
0
        public override MemberBinding CreateExpression(ref BindingParameter _params)
        {
            object _param = null;

            if (_constant == null)
            {
                _param = PopParameter(ref _params);
            }
            else
            {
                _param = _constant;
            }

            if (_param == null)
            {
                return(null);
            }
            return(Expression.Bind(PropertyInfo, ConvertTypeConstant(_param, PropertyInfo.PropertyType)));
        }
Exemplo n.º 6
0
        public override MemberBinding CreateExpression(ref BindingParameter _params)
        {
            var genericType = GetGenericType();
            var elementType = GetElementType();

            var cp = PopConfigureParameter(ref _params);

            if (cp == null)
            {
                return(Expression.Bind(PropertyInfo, Expression.NewArrayInit(genericType ?? elementType, new Expression[] { })));
            }

            return(Expression.Bind(PropertyInfo, Expression.NewArrayInit(genericType ?? elementType, _(cp))));

            IEnumerable <Expression> _(BindingParameter __params)
            {
                foreach (var param in __params.ArrayParameters)
                {
                    yield return(Configure.CreateObjectExpression(param));
                }
            }
        }
Exemplo n.º 7
0
        public override MemberBinding CreateExpression(ref BindingParameter _params)
        {
            var elemntType  = GetElementType();
            var genericType = GetGenericType();
            IEnumerable <object> __params;

            if (_constant == null || typeof(IEnumerable).IsAssignableFrom(_constant.GetType()) || _constant.GetType() == typeof(string))
            {
                __params = PopParameters(ref _params);
            }
            else
            {
                __params = (IEnumerable <object>)_constant;
            }

            if (__params == null)
            {
                return(Expression.Bind(PropertyInfo, Expression.NewArrayInit(genericType ?? elemntType, new Expression[] { })));
            }

            return(Expression.Bind(PropertyInfo, Expression.NewArrayInit(genericType ?? elemntType, __params.Select(x =>
                                                                                                                    ConvertTypeConstant(x, genericType ?? elemntType)))));
        }
Exemplo n.º 8
0
        public override MemberBinding CreateExpression(ref BindingParameter _params)
        {
            var call = ExpressionHelper.FindExpressionCall(CallExpression);

            return(Expression.Bind(PropertyInfo, call));
        }
Exemplo n.º 9
0
 public abstract MemberBinding CreateExpression(ref BindingParameter _params);
Exemplo n.º 10
0
 public override MemberBinding CreateExpression(ref BindingParameter _params)
 => Expression.Bind(PropertyInfo, ConvertExpression.AnalyzeConvertExpression(PopParameter(ref _params)));
Exemplo n.º 11
0
 public override MemberBinding CreateExpression(ref BindingParameter _params)
 => Expression.Bind(PropertyInfo,
                    Expression.NewArrayInit(GetGenericType(),
                                            PopParameters(ref _params).Select(x => ConvertExpression.AnalyzeConvertExpression(x))));