假设这个表达式:
Expression<Func<DateTime, dynamic>> exp = dt => new { dt.Second, dt.Hour, dt.Date.Day };
我需要获得以下内容:"Second", "Hour", "Date.Day"
我能够取得的最好成绩如下:
var body = exp.Body as NewExpression;
foreach(var member in body.Members)
member.Name().Dump();
但我只得到:"Second", "Hour", "Day"
这有点类似于this question但我在这里处理的是NewExpression。
答案 0 :(得分:2)
也许您可以尝试使用Arguments
代替Members
。
var body = exp.Body as NewExpression;
foreach (var member in body.Arguments)
{
Console.WriteLine(member);
}
输出是:
dt.Second
dt.Hour
dt.Date.Day