Назначить значение из сопоставления выражений - PullRequest
1 голос
/ 28 января 2011

Я отображаю свойства используя Expression<Func<TEntity, object>>.

Мне просто нужно было извлечь значения свойств из объектов, пока не узнаем. Как я могу присвоить значения, используя это выражение?

1 Ответ

1 голос
/ 28 января 2011

попробуйте это, предполагая expression = Expression<Func<TEntity, object>>:

MemberExpression memberExpression;

switch (expression.Body.NodeType)
{
  case ExpressionType.Convert:
    memberExpression = ((UnaryExpression) expression.Body).Operand as MemberExpression;
    break;
  case ExpressionType.MemberAccess:
    memberExpression = expression.Body as MemberExpression;
    break;
}

var propInfo = memberExpression.Member as PropertyInfo;

тогда просто используйте SetValue

...