从NewExpression成员获取链中属性的名称
本文关键字:属性 NewExpression 成员 获取 | 更新日期: 2023-09-27 18:28:27
假设这个表达式:
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"
这与这个问题有点相似,但我在这里处理的是一个NewExpression。
也许你可以试试Arguments
而不是Members
。
var body = exp.Body as NewExpression;
foreach (var member in body.Arguments)
{
Console.WriteLine(member);
}
输出为:
dt.Second
dt.Hour
dt.Date.Day