System.Linq.Dynamic中的表达式解析器如何工作?

时间:2013-07-23 05:56:26

标签: .net linq dynamic expression

好吧,我试图了解System.Linq.Dynamic dll中的表达式解析器是如何工作的,但逻辑有点模糊。 ParseExpression()调用了ParseLogicalOr(),这个调用ParseLogicalEnd()依次调用...等等,请您就哪里开始提供一些建议?

1 个答案:

答案 0 :(得分:1)

它基本上是在寻找每种类型的表达方式。奇怪的是,它调用降低优先级的方法,每个方法首先调用具有次高优先级的方法。

Or的优先级最低,因此会调用And,其中下一个最低,调用Comparison,调用Add,依此类推,直至到达{{} 1}}。

理解这样的代码的最好方法是调试它。在解决方案中包含源代码,然后使用几个不同的表达式创建一个小型测试应用程序,从简单开始,变得更加复杂。然后逐步完成每一个直到你理解整个事情。你这样做后就会明白。