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()); }