Для такой структуры класса, как это:
public class GrandParent
{
public Parent Parent { get; set;}
}
public class Parent
{
public Child Child { get; set;}
}
public class Child
{
public string Name { get; set;}
}
и следующая подпись метода:
Expression<Func<TOuter, TInner>> Combine (Expression<Func<TOuter, TMiddle>>> first, Expression<Func<TMiddle, TInner>> second);
Как я могу реализовать указанный метод, чтобы я мог его вызвать следующим образом:
Expression<Func<GrandParent, Parent>>> myFirst = gp => gp.Parent;
Expression<Func<Parent, string>> mySecond = p => p.Child.Name;
Expression<Func<GrandParent, string>> output = Combine(myFirst, mySecond);
так что вывод заканчивается как:
gp => gp.Parent.Child.Name
Возможно ли это?
Содержимое каждого Func будет только MemberAccess
. Я бы предпочел, чтобы output
был вложенным вызовом функции.
Спасибо