私はいくつかの方法を持っています:
public void Foo(Expression<Func<TModel, IEnumerable>> expression) {
// foo
}
そして私は変数を持っています:
Expression<Func<TModel, IList<TItem>>> expression;
に変数を渡すにはどうすればよいFoo
ですか?
私はいくつかの方法を持っています:
public void Foo(Expression<Func<TModel, IEnumerable>> expression) {
// foo
}
そして私は変数を持っています:
Expression<Func<TModel, IList<TItem>>> expression;
に変数を渡すにはどうすればよいFoo
ですか?
式変数を変換する必要があります。
var exp = Expression.Lambda<Func<TModel, IEnumerable>>(expression.Body, expression.Parameters);
Foo(exp);
これを使って:
public Expression<Func<TModel, IEnumerable>> ConvertExpression<TModel, TItem>(Expression<Func<TModel, IList<TItem>>> expression)
{
return (Expression<Func<TModel, IEnumerable>>)Expression
.Lambda(Expression.Convert(expression.Body, typeof(IEnumerable)), expression.Parameters);
}