I'm having a headache trying to convert the following linq expression.
Expression<Func<T, object>>
to the following linq expression...
Expression<Func<T, U>>
In the example above the object is always of type U
.
I know how easy it could to convert/cast between parameter types but I'm not too sure how to cast between return types.
You'll need to create a new expression by:
Expression.Convert
over the source expression's body to create the result's body.Expression.Lambda
.Try this:
Expression<Func<T, object>> source = ...
var resultBody = Expression.Convert(source.Body, typeof(U));
var result = Expression.Lambda<Func<T, U>>(resultBody, source.Parameters);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With