Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool AreEqual(Foo foo)
- {
- return foo.Value1 == foo.Value2;
- }
- //build the parameter expression of the object
- ParameterExpression parameter = Expression.Parameter(typeof(Foo), "x");
- //the left member
- MemberExpression leftMember = Expression.Property(parameter, "Value1");
- //the right member
- MemberExpression rightMember = Expression.Property(parameter, "Value2");
- //the left lambda
- LambdaExpression leftLmbda = Expression.Lambda(leftMember, parameter);
- //the right lambda
- LambdaExpression rightLambda = Expression.Lambda(rightMember, parameter);
- //and here I evaluate the boolean expression:
- Expression equalExpression = Expression.Equal(rightLambda, leftLmbda);
- //the lambda of the equal expression
- LambdaExpression lambda = Expression.Lambda(equalExpression, parameter);
- //the object:
- Foo foo = new Foo { Value1= 5, Value2=5 };
- Delegate expression = lambda.Compile();
- var eq = expression.DynamicInvoke(foo);
- //build the parameter expression of the object
- ParameterExpression parameter = Expression.Parameter(typeof(Foo), "x");
- //the left member
- MemberExpression leftMember = Expression.Property(parameter, "Value1");
- //the right member
- MemberExpression rightMember = Expression.Property(parameter, "Value2");
- //and here I evaluate the boolean expression:
- Expression equalExpression = Expression.Equal(leftMember, rightMember);
- //the lambda of the equal expression
- LambdaExpression lambda = Expression.Lambda(equalExpression, parameter);
- //the object:
- Foo foo = new Foo { Value1 = 5, Value2 = 5 };
- Delegate expression = lambda.Compile();
- var eq = expression.DynamicInvoke(foo);
Add Comment
Please, Sign In to add comment