【发布时间】:2018-06-26 20:46:56
【问题描述】:
我正在编写一个接受 lambda 表达式作为参数并从左到右解析其属性的方法。应满足以下条件:
- 表达式只能使用简单的属性或字段——没有方法调用或 LINQ 查询或任何更复杂的东西。 (例如 p => p.HomeAddress.City)如果表达式不满足这些条件,该方法可能会引发异常。
- 该方法应返回有关每个属性或字段的信息列表:名称和类型。
如何做到这一点?
private List<SomeClass> ParseExpression<T1,T2>(Expression<Func<T1, T2>> func)
{
// ??
}
【问题讨论】:
-
获取 LINQPad 的副本,您可以
Dump不同表达式的表达式值,看看您需要做什么来解析它们。
标签: c# reflection lambda expression