2011-01-07 231 views
1

这可能看起来像一个奇怪的要求,但是对于需要我认为这将是一个很好的概念,以便能够然后可以被编译成一个提供类型安全的lambda表达式转换过滤器属性字符串的API一个查询字符串 - 本质上类似于Linq - > SQL。转换lambda表达式字符串

因此,例如:

Func<TQueryObj, bool> 
(invoice) => { invoice.Status == "DRAFT" && invoice.Type == "ACCREF" }; 

将向

Status=="DRAFT" && Type=="ACCREF" 

我使用的发票API此刻因此例如转换。任何方式来实现这个相当简单?

干杯

回答

4

你需要做一个继承ExpressionVisitor,这将通过Expression<Func<...>>递归爬行。
这不会是容易的。

+3

+1“这并不容易。” – tster 2011-01-07 13:33:37