评估委托
我有一个表达式,其中使用了一个参数,我想在下面的DoSomething函数中使用该参数的结果。
public void DoSomething <TModel>(Expression<Func<TModel, String>> func){
}
调用DoSomething方法
TModel具有在Names属性中的名称列表,我想从DoSomething方法中访问它们。我无法弄清如何做到这一点。
DoSomething(m => m.Names);
尝试编译但没有成功
...
func.Compile().Invoke([need m.Names]) in here.
我的代码实际上看起来像这样
public static HelperResult TestFor<TModel>(
ExtendedPageBaseClass<TModel> page,
Expression<Func<TModel, object>> valueField,
Expression<Func<TModel, object>> displayField,
Expression<Func<TModel, ICollection>> list,
Object defaultValue = null, String changedEvent = null)
{
var idField = valueField.GetName();
var label = displayField.GetName();
var display = page.Html.NameFor(displayField).ToString();
var data = list.Compile().Invoke(page.Html.ViewData.Model);
return IsolatedSelectorFor(page, idField, display, label, data);
}
Func<>
,难道不是暗示了 Invoke,因此你可以只说f(model)
吗? - NetMage