我有以下表达
Expression<Func<T, object>> expr1;
有没有办法把它投到
Expression<Func<IUpdateConfiguration<T>, object>>
?
[更新]
或者从现有的Expression<Func<IUpdateConfiguration<T>, object>>
创建新的Expression<Func<T, object>>
?
答案 0 :(得分:3)
没有。第一个函数采用T
并返回object
。第二个接受IUpdateConfiguration<T>
并返回object
。除非T
也是IUpdateConfiguration<T>
,否则您无法将其转换为IUpdateConfiguration<T>
。如果您知道将T
转换为Expression<Func<IUpdateConfiguration<T>, T> expr2;
的方法,则可以制作 new 表达式,但这与转换不同。
例如,鉴于此:
Expression<Func<IUpdateConfiguration<T>, object>> =
(IUpdateConfiguration<T> t) => expr1(expr2(t));
您可以按照以下方式制作所需的功能:
{{1}}
但是这将与原始表达体完全不同。这可能是也可能不是问题,取决于你想要完成的事情。