¿Cómo puedo obtener los valores de argumentos de un MethodCallExpression?Obteniendo valores de argumento de MethodCallExpression
Hoy lo hago de esta manera, pero NO ES lo suficientemente rápido:
private static object GetArgumentValue(Expression element)
{
LambdaExpression l = Expression.Lambda(Expression.Convert(element, element.Type));
return l.Compile().DynamicInvoke();
}
Este método de obtener valores de una expresión, pero si sé que la expresión siempre vienen de un MethodCallExpression.Arguments puedo optimizarlo?
creo que puedo cambiar primera línea con esto, pero no sé si el trabajo para todas las situaciones:
LambdaExpression l = Expression.Lambda(element);
Quieres decir algo como "objeto [] args = methodCallExpression.Arguments.Select (p => p.Value);"? –
@Rodrigo Eso es lo que estoy buscando, pero Value no es una propiedad de Expression. – Langdon