Example #1
0
 public Expression NewExpression(Expression instanceParameter)
 {
     var parameters = CtorParams.Select(map =>
     {
         var result = new ExpressionResolutionResult(instanceParameter, Ctor.DeclaringType);
         foreach (var resolver in map.SourceResolvers)
         {
             var matchingExpressionConverter =
                 ExpressionResultConverters.FirstOrDefault(c => c.CanGetExpressionResolutionResult(result, resolver));
             if (matchingExpressionConverter == null)
                 throw new Exception("Can't resolve this to Queryable Expression");
             result = matchingExpressionConverter.GetExpressionResolutionResult(result, map, resolver);
         }
         return result;
     });
     return Expression.New(Ctor, parameters.Select(p => p.ResolutionExpression));
 }