[Reflection.Emit] Comment charger une référence sur la pile ?
Lors de la création d'une méthode dynamique, j'aimerais émettre une instruction qui charge une référence déjà existante sur la pile.
En clair, j'ai ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| class Foo
{
Action<object>GetBarMethod(...){
ConstructorInfo ci = typeof(Foobar).GetConstructor(new Type[]{typeof(Foobar)});
DynamicMethod dm = new DynamicMethod(...);
IlGenerator il = dm.GetILGenerator(...);
// Ici quelque chose pour charger la référence "this" sur la pile
il.Emit(Opcodes.Newobj, ci);
il.Emit(Opcodes.ret);
}
} |
Code:
1 2 3 4
| class Foobar
{
public Foobar(Foo foo){...}
} |
Quelqu'un a déjà fait ça ou sait comment faire ?