示例#1
0
        public static Expression GetTypedBody <TContext> (Type expectedType, Func <TContext, Expression> bodyProvider, TContext context)
            where TContext : BodyContextBase
        {
            ArgumentUtility.CheckNotNull("expectedType", expectedType);
            ArgumentUtility.CheckNotNull("bodyProvider", bodyProvider);
            ArgumentUtility.CheckNotNull("context", context);

            var body = ProviderUtility.GetNonNullValue(bodyProvider, context, "bodyProvider");

            return(ExpressionTypeUtility.EnsureCorrectType(body, expectedType));
        }
示例#2
0
 private static Expression EnsureCorrectType(Expression expression, Type type, int argumentIndex, string parameterName)
 {
     try
     {
         return(ExpressionTypeUtility.EnsureCorrectType(expression, type));
     }
     catch (InvalidOperationException ex)
     {
         var message = String.Format("The argument at index {0} has an invalid type: {1}", argumentIndex, ex.Message);
         throw new ArgumentException(message, parameterName, ex);
     }
 }