当我尝试使用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之外的另一个类时,它会失败。 (因为它表示parameterExpression为空)。有人可以帮我重写一下这样有效吗?
答案 0 :(得分:1)
尝试放入第二行(ParameterExpression parameterExpression;
)
ParameterExpression parameterExpression = expression.Parameters[0];
所有(Expression)
演员阵容都没用。你可以删除它们。