Вот мой метод:
public static MethodCallExpression ClonePropertyAssignmentLambda<T>(Expression source, string property)
{
var targetExp = Expression.Parameter(typeof (T), "target");
var propertyInfo = typeof (T).GetProperty(property);
var targetProperty = Expression.Property(targetExp, propertyInfo);
var sourceProperty = Expression.Property(source, propertyInfo);
return Expression.Call(targetProperty, ((PropertyInfo) targetProperty.Member).GetSetMethod(), sourceProperty);
}
Вот как я его называю:
ClonePropertyAssignmentLambda<Person>(source, "Name")
Я получаю сообщение об ошибке в строке Expression.Call.Я получаю похожую ошибку, если я вызываю GetGetMethod.