public static Expression CreateObjectExpression(this ObjectConfigure objectConfigure, BindingParameter _params)
        {
            if (_params == null)
            {
                return(Expression.New(objectConfigure.Type));
            }

            return(Expression.MemberInit(Expression.New(objectConfigure.Type),
                                         objectConfigure.Bindings.Select(x => x.CreateExpression(ref _params)).Where(x => x != null)));
        }
        public static object CreateObject(this ObjectConfigure objectConfigure, IEnumerable <object> _params)
        {
            Expression expr;

            if (!_params.Any())
            {
                expr = Expression.New(objectConfigure.Type);
            }
            else
            {
                var p = new BindingParameter(_params);
                expr = objectConfigure.CreateObjectExpression(p);
            }

            var lambda = Expression.Lambda(expr);

            return(lambda.Compile().DynamicInvoke());
        }