Генерация выражения> аргументы - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть такой метод:

public static MvcHtmlString Pager<T>(T urlParams, Expression<Func<T, object>> pageProperty) where T : class
{
        string pagingProp = Helpers.PropertyToString(pageProperty.Body);
        //set property on object using reflection.
        PropertyInfo prop = type.GetProperty(urlParams.GetType());

}

Цель выражения - узнать, какое свойство urlParams следует использовать для подкачки.

Допустим, у меня есть класс:

public class Pagination
{
    public int PageIndex {get; set; }
}

Я бы хотел назвать это так:

Html.Pager(new Pagination{ PageIndex = 1 }, new Expression<Func<Pagination>>(p => p.PageIndex))

Проблема: Expression<Func<Pagination>>() принимает конструктор, как мне сказать выражению, что я хочу использовать свойство PageIndex?

1 Ответ

3 голосов
/ 16 февраля 2012

Предполагая:

void M(Expression<Func<User, object>> f) { /* ... some implementation ... */ }

Тогда:

M(u => u.Password);
...