C# 从NewExpression成员获取链中属性的名称
假设这个表达式:C# 从NewExpression成员获取链中属性的名称,c#,reflection,lambda,linq-expressions,C#,Reflection,Lambda,Linq Expressions,假设这个表达式: Expression<Func<DateTime, dynamic>> exp = dt => new { dt.Second, dt.Hour, dt.Date.Day }; 但我只得到:“秒”、“小时”、“天” 这有点类似于,但我在这里处理一个新表达式。也许您可以尝试使用参数而不是成员 var body = exp.Body as NewExpression; foreach (var member in body.Arguments) {
Expression<Func<DateTime, dynamic>> exp = dt => new { dt.Second, dt.Hour, dt.Date.Day };
但我只得到:“秒”、“小时”、“天”
这有点类似于,但我在这里处理一个新表达式。也许您可以尝试使用
参数
而不是成员
var body = exp.Body as NewExpression;
foreach (var member in body.Arguments)
{
Console.WriteLine(member);
}
输出为:
dt.Second
dt.Hour
dt.Date.Day
dt.Second
dt.Hour
dt.Date.Day