Esiste un modo semplice per scoprire se un'espressione contiene un'espressione di parametro che non è ulteriormente incapsulata, ad esempio, in MemberExpression.Scoprire se un'espressione contiene un ParameterExpression "solitario"
Esempio:
x => x.Method() ? x : null
< = 1 occorrenza di x senza alcuna ulteriore valutazione
x => x.Method() ? x.Property : null
< = 0 occorrenze di x senza alcuna ulteriore valutazione
In poche parole il mio caso d'uso è che so che il Metodo (nessun parametro) e valori di proprietà e vogliono scoprire se questo è sufficiente per valutare l'espressione senza recuperare l'intero "oggetto" dall'archivio.
Modifica: Il mio esempio può essere semplificato. Esistono altri tipi di espressioni che devono essere gestiti (ad esempio UnaryExpression).
x => ((Cast) x).Property
< = 0 occorrenze di x senza alcuna ulteriore valutazione
Sto cercando una risposta alla seguente domanda:
dato un'espressione, se conosco tutti i valori di ritorno del metodo e valori di proprietà di il parametro di input ma non il valore del parametro stesso, posso valutare l'espressione?
Quale versione di .NET stai usando? –
È .net 3.5 (ma ho anche una versione .net 4 dove potrei usare questo) – lindstromhenrik