Referência 'this' no manipulador de eventos dinâmicos
Na minha classe 'myClass', estou usando o Reflection.Emit para gravar dinamicamente um manipulador de eventos para um dos membros da classe myClass.
Eu fiz isso com sucesso.
Agora, quero modificar o manipulador de eventos para chamar um dos métodos da instância na classe myClass.
No entanto, não consigo descobrir como inserir uma referência a 'this' na pilha MSIL usando o Reflection.Emit. No manipulador de eventos, Ldarg_0 não é uma referência a 'this', mas sim o primeiro parâmetro do manipulador de eventos.
Alguém sabe como empurrar uma referência para 'this' na pilha para que eu possa chamar um método de instância. Por exemplo, isso é o que eu gostaria que o código c # se parecesse:
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
}
}
Obrigado!