コード例 #1
0
        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));
        }
コード例 #2
0
        public void AddConstructorMap(ConstructorInfo constructorInfo, IEnumerable <ConstructorParameterMap> parameters)
        {
            var ctorMap = new ConstructorMap(constructorInfo, parameters);

            ConstructorMap = ctorMap;
        }