2009-12-01 2 views
1

나는 아래의 예제와 같이 string을 실행하는 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); 

위 코드의 경우! Contains와 같은 것을 원합니다.

제안 사항?

감사합니다.

답변

9

Expression.Not? 간단히 :

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

그 중 하나입니다. 감사! – Marcus

+0

잘 작동합니다 ... 원래 Expression.Negate() 노력하고 있었지만 Expression.Not() 내가 찾고있는 것으로 나타납니다. – afreeland