Verweisen Sie im dynamischen Ereignishandler auf "this"

In meiner Klasse 'myClass' verwende ich Reflection.Emit, um dynamisch einen Ereignishandler für eines der Mitglieder der Klasse myClass zu schreiben.

Ich habe das erfolgreich gemacht.

Jetzt möchte ich den Ereignishandler so ändern, dass er eine der Instanzmethoden in der Klasse myClass aufruft.

Ich kann jedoch nicht herausfinden, wie ich mit Reflection.Emit einen Verweis auf 'this' auf den MSIL-Stapel schieben kann. In der Ereignisbehandlungsroutine ist Ldarg_0 kein Verweis auf 'this', sondern der erste Parameter der Ereignisbehandlungsroutine.

Weiß jemand, wie man einen Verweis auf "this" auf den Stack legt, damit ich eine Instanzmethode aufrufen kann? Zum Beispiel ist dies, was ich möchte, dass der C # -Code so aussieht:

public class myClass
{
private myObj1 obj1;
public myClass() {
   this.init();
}

private void init()
{
   obj1.myEvent += new myEvent_EventHandler(theHandler);
}

private void theHandler(myObj2 obj2, myObj3 obj3)
{
   // this is the part I'm having trouble with
   this.myFunction(obj2);
}

private void myFunction(myObj2 obj2)
{
   // irrelevant
}
}

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage