反编译表达式
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)
的转换都没有用。您可以删除它们。
当我尝试使用 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)
的转换都没有用。您可以删除它们。