2012-11-28 105 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 
);