Bonjour à tous !

J'ai un problème que je n'arrive pas à résoudre, mais il n'est pas facile à expliquer.

J'ai actuellement une appli dans laquelle une méthode MA1 d'un objet A génère dynamiquement une méthode MB affectée à un objet B. Cette méthode va appeler une autre méthode MA2 de A mais qui est statique (à l'aide de la réflexion et des OpCodes). Cette méthode MA2 cible de A ne peut donc faire référence à A à l'aide de this.
J'aimerais que l'objet A qui génère cette méthode MB dynamiquement puisse lui passer en argument une référence à lui-même (this). Mais quel(s) OpCode(s) et quelle syntaxe utiliser ?

Ma méthode dynamique MB accepte déjà trois arguments (Control, Object et Int32) que je récupère facilement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
            xILGen.Emit(OpCodes.Ldarg_0);
            xILGen.Emit(OpCodes.Ldarg_1);
            xILGen.Emit(OpCodes.Ldc_I4, eventStructureIndex);
            xILGen.Emit(OpCodes.Call, MA2);
            xILGen.Emit(OpCodes.Ret);
xILGen est le ILGenerator, eventStructureIndex mon argument Int32 et MA2 la méthode cible statique de A (à laquelle je voudrais passer dynamiquement une référence à A.

J'aimerais passer "en dur" une référence à l'objet A dans lequel ce morceau de code est situé (en passant par this ?)
J'avais pensé à une commande de type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
xILgen.Emit(OpCodes.Ldarg, this) ?
Mais la syntaxe ne passe pas.

D'avance merci si vous avez la solution (en espérant avoir été clair ).