|
|
1
6
因为表达式传递到
请注意
编辑 然后您必须从生成的闭包中获取字段,如下所示:
|
|
|
2
5
如果你知道“酒吧”的类型,你可以这样做(我在这里重复使用代码改善的答案中的一些部分):
在大多数情况下,您可以在表达式树中找到表示对象的表达式,然后编译和执行该表达式并获取对象(顺便说一下,这不是一个非常快速的操作)。所以,您缺少的是compile()方法。您可以在这里找到更多信息: How to: Execute Expression Trees . 在这段代码中,我假设您总是传递一个表达式,比如“()=>object.member”。对于现实场景,您需要分析您是否有所需的表达式(例如,如果不是memberExpression,只抛出异常)。或者使用表情访客,这有点棘手。 我最近在这里回答了一个非常相似的问题: How do I subscribe to an event of an object inside an expression tree? |
|
|
3
1
站在上面巨人的肩膀上,我最后一个用于提取表示表达式源的类实例的扩展方法如下:
我建立在以上所有答案的基础上,谢谢大家。 |
|
|
Sergei · 删除数据框中多个列的列表中的某些元素 4 年前 |