Я хотел бы создать метод, который принимает Expression
и создает его логическую инверсию (то есть возвращает false
, где он вернул бы true
, и наоборот. Это намного сложнее, чем я думал. Вот где я задумал:
public static Expression<Func<T, bool>> Not<T>(this Expression<Func<T, bool>> expression)
{
return Expression.Lambda<Func<T, bool>>(Expression.Not(expression.Body));
}
Компилируется нормально, но при вызове выдает следующее исключение :
Test method Tests.Common.Unit.LinqPredicateBuilderTests.CanInverseAPredicate threw exception:
System.ArgumentException: Incorrect number of parameters supplied for lambda declaration
Понятия не имею, что делаю. Может ли кто-нибудь заполнить пробелы?