我在“BindSetMember”方法中有以下返回行:
return new DynamicMetaObject(Expression.TypeAs(methodCall, binder.ReturnType), restrictions)
它不会将“methodCall”表达式中返回的“bool”值装箱(给出类型转换错误)。我预计表达式方法“methodCall”的返回值(bool)将被装箱到对象类型中(因为该方法返回“bool”,但 DLR 调用站点需要“object”;规范说装箱应该在“TypeAs”时发生' 用来)。我也尝试过“Expression.Convert”,但我不断收到类型转换错误。为什么这不起作用?我是否被迫创建一个 lambda 表达式来转发呼叫!?:(
谢谢。
(仅供参考:这个问题与现有问题相似,但我在这里提出一个具体问题以寻求可能的替代解决方案)