1

我想编写一个表达式来检索属性中的属性。我的 2 节课:

public class BusinessType
{
    public string Proprietor
    {
        get { return "Proprietor"; }
    }
}

public class VendorApplicationViewModel
{
    public List<BusinessType> BusinessClassification { get; set; }
}

public static IHtmlString RadioListForIEnum<TModel, TProperty>(this HtmlHelper<TModel> htmlhelper, 
                                                               Expression<Func<TModel, TProperty>> expression)
{
    var prop = ModelMetadata.FromLambdaExpression(expression, htmlhelper.ViewData);
    //Func<TModel2, TProperty2> nestedProperty = 
    return null;
}

我对如何实现这一目标感到迷茫。此外,我对表达式树还很陌生,任何关于教程之类的好的建议都将不胜感激。谢谢

4

1 回答 1

1

我认为您只是想在财产中获得财产。

你可以有以下。

 Expression<Func<VendorApplicationViewModel, string>> lambda1 = model => model.BusinessClassification[0].Proprietor;

可以在代码中重新创建为

 ParameterExpression param = Expression.Parameter(typeof(VendorApplicationViewModel));
 Expression<Func<VendorApplicationViewModel, string>> lambda2 = Expression.Lambda<>(
      Expression.Property(
           Expression.Property(
                param,
                "BusinessClassification",
                Expression.Constant(0)
           ),
           "Proprietor"
      ),
      param
 );
于 2013-07-15T16:42:12.853 回答