我有以下表达
Expression<Func<T, object>> expr1;
有什么办法可以将它投射到
Expression<Func<IUpdateConfiguration<T>, object>>?
[更新]
Expression<Func<IUpdateConfiguration<T>, object>>或者从现有的创建一个新的Expression<Func<T, object>>?
我有以下表达
Expression<Func<T, object>> expr1;
有什么办法可以将它投射到
Expression<Func<IUpdateConfiguration<T>, object>>?
[更新]
Expression<Func<IUpdateConfiguration<T>, object>>或者从现有的创建一个新的Expression<Func<T, object>>?
不,第一个是接受 aT并返回a 的函数object。第二个接受 aIUpdateConfiguration<T>并返回 a object。除非 theT也是 a IUpdateConfiguration<T>,否则你不能转换它。如果您知道将 a 转换IUpdateConfiguration<T>为 a的方法T,则可以创建一个新表达式,但这与强制转换不同。
例如,鉴于此:
Expression<Func<IUpdateConfiguration<T>, T> expr2;
您可以像这样制作所需的功能:
Expression<Func<IUpdateConfiguration<T>, object>> =
(IUpdateConfiguration<T> t) => expr1(expr2(t));
但这将具有与原始的完全不同的表达体。这可能是也可能不是问题,这取决于您要完成的工作。