在我的程序中,我有一个System.Linq.Expressions.Expression
对象列表。
此列表可以包含特定Expression
的不同类型。例如BinaryExpression
,ConditionalExpression
等(请参阅https://msdn.microsoft.com/en-us/library/system.linq.expressions.expression(v=vs.110).aspx)。
阅读此列表时,我想检查Expression
的具体类型(BinaryExpression
,ConditinalExpression
等)。
如何获取派生Expression
类的名称/类型?
更新
这里是表达式列表的定义:
IEnumerable<Expression<Func<T, object>>> Expressions { get; }
以及获取表达式的代码:
foreach (var expression in test.Expressions)
{
var test = expression.GetType().ToString(); //System.Linq.Expressions.Expression`1[System.Func`2[TestObject,System.Object]]
}
答案 0 :(得分:1)
你必须
expression.Body.GetType();
您所看到的是Expression<Func<,>>
,您感兴趣的是.Body
。