Отрицание вызова метода в дереве выражений - PullRequest
1 голос
/ 01 декабря 2009

Я динамически генерирую выражение c # Linq, как показано ниже, которое будет (в приведенном ниже примере) выполнять строку. Содержит значения коллекции.

var dynamicMethod = "Contains";
var parameter = Expression.Parameter(typeof (MyClass), "type");
var property = Expression.Property(parameter, "MyProperty");
var constantValue = Expression.Constant("PropertyValue", property.Type);
var method = property.Type.GetMethod(dynamicMethod, new[] {property.Type});
var expression = Expression.Call(property, method, constantValue);

Для приведенного выше кода я бы хотел что-то эквивалентное! Содержит.

Есть предложения?

Спасибо.

1 Ответ

9 голосов
/ 01 декабря 2009

А как насчет Expression.Not ? Это было бы просто:

var condition = Expression.Not (contains_call);
...