反编译表达式

Decompile Expression

当我尝试使用 dotPeek 反编译代码时,我得到了这个:

public static Expression<Func<TInput, object>> ToUntypedPropertyExpression<TInput, TOutput>(this Expression<Func<TInput, TOutput>> expression)
{
  string name = (expression.Body as MemberExpression ?? ((UnaryExpression) expression.Body).Operand as MemberExpression).Member.Name;
  ParameterExpression parameterExpression;
  return Expression.Lambda<Func<TInput, object>>((Expression) Expression.Convert((Expression) Expression.Property((Expression) parameterExpression, name), typeof (object)), new ParameterExpression[1]
  {
    parameterExpression
  });
}

但是当我想将其复制到 dll 之外的另一个 class 时,它失败了。 (因为它说 parameterExpression 是空的)。有人可以帮我重写它以使其有效吗?

尝试输入第二行(带有 ParameterExpression parameterExpression; 的行)

ParameterExpression parameterExpression = expression.Parameters[0];

而且所有 (Expression) 的转换都没有用。您可以删除它们。