2012-11-28 77 views
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; 
} 

我宁愿失去了,我怎么能做到这一点。此外,我对表达式树很新,对教程有很好的建议,不胜感激。谢谢

+1

它极难破译你问这里。 – nawfal

回答

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 
);