Qualcuno può spiegarmi cosa deve essere caricato nello stack prima di effettuare una chiamata di funzione tramite reflection.emit?Reflection emit stack e method call
Ho un metodo molto semplice
public static void Execute(string 1, string 2)
voglio generare il metodo nella classe seguente modo dinamico (dimenticare il resto, ho ottenuto li risolto)
public class Test{
public string s1;
public void Run(string s2)
{
MyOtherClass.Execute(s2,s1)
}
}
ho una copia del test precedente, per riferimento, e ho notato che i seguenti codici operativi sono stati emessi, prima della "chiamata".
- ldarg_1
- ldarg_0
- ldfld
La domanda è: cosa sta facendo lì ldarg_0? Ho solo bisogno di 2 argomenti per la chiamata, perché il CLR richiede che ldarg_0 venga inserito nello stack?
Potete fornire l'IL circostante? –