2011-07-08 64 views
0

我有接受LambdaExpression作爲parametar提取輸入參數表達式

public void SomeMethod(Expression<Func<SomeObject, bool>> predicate) 
    { } 

該方法我想成員和參數值從表達式身體裏面提取方法。這是可能的,如何實現?

方法可以調用這樣的:

SomeMethod(t=> t.Id == 3 && t.Name=="Name"); 

SomeMethod(t=> t.Id.Equals(3)); 

SomeMethod(t=> t.Id > 3 || t.Id = 1); 

等你明白了吧。

+0

[獲得從lambda表達式方法參數結束值](http://stackoverflow.com/questions/3766698/get-end-values-from-lambda-expressions-method-parameters) –

+0

檢查這篇文章http://msdn.microsoft.com/en-us/library/bb397951.aspx – Andrey

回答

2

您正在查找的解決方案稱爲Expression Tree Visitor。 通過使用它,你可以去lambda表達式成員和參數。

同樣在此walkthrough可能是有用的,它包含了在lambda表達式的情況下,參數lambda表達式局部評價者代碼是不是一個常量