So che sto chiedendo il bizzarro ma solo per i calci, è possibile ottenere il MethodInfo
per un'espressione lambda?Ottieni MethodInfo per un'espressione lambda
io sono alla ricerca di qualcosa di simile:
(Func<int, string>(i => i.ToString())).MethodInfo
UPDATE voglio ottenere informazioni metodo indipendentemente dal fatto che il corpo della Lamda è un'espressione chiamata del metodo o no, vale a dire a prescindere che tipo di espressione è il corpo del lambda.
Quindi, ad es.
Questo potrebbe funzionare.
var intExpression = Expression.Constant(2);
Expression<Func<int, Dog>> conversionExpression = i => Program.GetNewDog(i);
var convertExpression5 = Expression.ConvertChecked(intExpression, typeof(Dog), ((MethodCallExpression)(conversionExpression.Body)).Method);
class Program
{
static Dog GetNewDog(int i)
{
return new Dog();
}
}
Ma voglio anche questo al lavoro:
var intExpression = Expression.Constant(2);
Expression<Func<int, Dog>> conversionExpression = i => new Dog();
var convertExpression5 = Expression.ConvertChecked(intExpression, typeof(Dog), /*...???... */);
Un'espressione non ha informazioni sul metodo. Se lo compili, puoi ottenere le informazioni sul metodo dal delegato. – leppie
Non mi interessa creare un'espressione. Ho aggiunto l'aggiornamento in risposta alla risposta di Timothy Shields qui sotto. Tutto quello che voglio è un metodoInfo da un delegato. Possibile? –
Funziona bene '(nuovo Func (i => i.ToString())). Metodo' –
leppie