Чтение свойств объекта с помощью деревьев выражений
Я хочу создать лямбда-выражение для каждого свойства объекта, которое читает значение динамически.
Что у меня так далеко:
var properties = typeof (TType).GetProperties().Where(p => p.CanRead);
foreach (var propertyInfo in properties)
{
var getterMethodInfo = propertyInfo.GetGetMethod();
var entity = Expression.Parameter(typeof (TType));
var getterCall = Expression.Call(entity, getterMethodInfo);
var lambda = Expression.Lambda(getterCall, entity);
var expression = (Expression) lambda;
var functionThatGetsValue = expression.Compile();
}
Код хорошо работает, когда я звонюfunctionThatGetsValue
пока "TypeOfProperty» жестко закодировано. Я знаю, что могуне пройти "TypeOfPoperty» динамически. Что я могу сделать, чтобы достичь своей цели?