Я разрабатываю API, который использует лямбда-выражения для указания свойств. Я использую этот знаменитый фрагмент кода, подобный этому (это упрощено и неполно, просто чтобы понять, о чем я говорю):
public void Foo<T, P>(Expression<Func<T, P>> action)
{
var expression = (MemberExpression)action.Body;
string propertyName = expression.Member.Name;
// ...
}
Называется так:
Foo((String x) => x.Length);
Теперь я хотел бы указать путь свойства путем цепочки имен свойств, например:
Foo((MyClass x) => x.Name.Length);
Foo должен иметь возможность разбить путь на свои имена свойств ("Name"
и "Length"
). Есть ли способ сделать это с разумными усилиями?
Существует как-то похожий вопрос, но я думаю, что они пытаются комбинировать лямбда-выражения там.
Другой вопрос также относится к именам вложенных свойств, но я не совсем понимаю, о чем они говорят.