¿Existe una manera simple de averiguar si una expresión contiene una expresión de parámetros que no está incluida en, por ejemplo, MemberExpression?Averiguar si una expresión contiene un parámetro "solo" ParameterExpression
Ejemplo:
x => x.Method() ? x : null
< = 1 ocurrencia de x sin ninguna evaluación adicional
x => x.Method() ? x.Property : null
< = 0 ocurrencias de x sin ninguna evaluación adicional
En pocas palabras mi caso de uso es que sé que el Método (sin parámetros) y valores de propiedad y desea averiguar si esto es suficiente para evaluar la expresión sin recuperar todo el "objeto" de la tienda.
Editar: Mi ejemplo es tal vez simplificado. Hay más tipos de expresiones que deben manejarse (por ejemplo, UnaryExpression).
x => ((Cast) x).Property
< = 0 ocurrencias de x sin ninguna evaluación adicional
Busco una respuesta a la siguiente pregunta: ¿
dada una expresión, si sé que todos los valores de retorno del método y los valores de propiedad de el parámetro de entrada pero no el valor del parámetro en sí, ¿puedo evaluar la expresión?
¿Qué versión de .NET está usando? –
Es .net 3.5 (pero también tengo una versión .net 4 donde podría usar esto) – lindstromhenrik