如何创建expression_func_tmodel, tproperty_gt;>;

本文关键字:tmodel tproperty gt func 创建 expression 何创建 | 更新日期: 2023-09-27 18:10:48

是否可以创建Expression<Func<TModel, bool>>(),可以在不同的htmlHelpers(例如在CheckBoxFor())中使用,如果我有一个模型对象

this HtmlHelper<TModel> htmlHelper

和属性名(通过反射)。

如何创建expression_func_tmodel, tproperty_gt;>;

当然:

static Expression<Func<TModel,TProperty>> CreateExpression<TModel,TProperty>(
    string propertyName)
{
    var param = Expression.Parameter(typeof(TModel), "x");
    return Expression.Lambda<Func<TModel, TProperty>>(
        Expression.PropertyOrField(param, propertyName), param);
}

:

var lambda = CreateExpression<SomeModel, bool>("IsAlive");