Ссылка 'this' в динамическом обработчике событий
В моем «myClass» класс, я использую Reflection.Emit для динамической записи обработчика события для одного из класса myClass & apos; члены.
Я сделал это успешно.
Теперь я хочу изменить обработчик событий для вызова одного из методов экземпляра в классе myClass.
Однако я не могу понять, как нажать на ссылку «это». в стек MSIL с помощью Reflection.Emit. В обработчике события Ldarg_0 является не ссылкой на «this», а скорее первым параметром обработчика события.
Кто-нибудь знает, как нажать на ссылку «это»? в стеке, чтобы я мог вызвать метод экземпляра. Например, это то, что я хотел бы, чтобы код C # выглядел так:
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
}
}
Спасибо!