所以我正在解析一个表达式树,但我遇到了一个异常现象。鉴于表达式:
Int32 five = 5;
var query = Z<MyPersonTable>.QueryVia<IPersonQuery>()
.Where(person => five == 5);
当我解析five
字段时,而不是获得实际数字,我得到:
Program.Hosting.TestService.P+<>;c__DisplayClass0
我认识到它必须是一个闭包,但我如何从中获得实际价值呢?
这是我的解析器:
private static XElement Parse(ConstantExpression constant)
{
return new XElement("CONSTANT",
new XAttribute("TYPE", constant.Type),
constant.Value);
}
通常适用于其他值,但不是在我传入闭包时。