internal LambdaExpression DestinationConstructorExpression(Expression instanceParameter) { var ctorExpr = ConstructExpression; if (ctorExpr != null) { return(ctorExpr); } Expression newExpression; if (ConstructorMap != null && ConstructorMap.CtorParams.All(p => p.CanResolve)) { newExpression = ConstructorMap.NewExpression(instanceParameter); } else { newExpression = Expression.New(DestinationTypeOverride ?? DestinationType); } return(Expression.Lambda(newExpression)); }
public void AddConstructorMap(ConstructorInfo constructorInfo, IEnumerable <ConstructorParameterMap> parameters) { var ctorMap = new ConstructorMap(constructorInfo, parameters); ConstructorMap = ctorMap; }