[C#] Non-static handler bij EventInfo.AddEventHandler

Pagina: 1
Acties:

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Topicstarter
Ik ben bezig met een applicatie die dynamisch dll's laad. In die dll's zit een event waaraan ik een handler wil koppelen. Om dit te doen gebruik ik een
C#:
1
Type.GetEvent("hetevent");
om het event te vinden.
Om vervolgens de event handler eraan toe te voegen wordt de volgende code gebruikt:
C#:
1
2
Delegate ev_d = Delegate.CreateDelegate(ei.EventHandlerType,typeof(Node),"Stepper");
ei.AddEventHandler(o,ev_d);

Dit werkt zolang de eventhandler (Stepper) static is.
En hier begint het probleem. Ik wil een ProgressBar bijwerken aan de hand van dit event maar dat gaat dus niet lukken omdat ik er vanuit een static eventhandler dus niet bij kan.

Is er een manier om alsnog een non-static eventhandler dynamisch toe te voegen?

Nu met Land Rover Series 3 en Defender 90


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:34
Het werkt waarschijnlijk enkel met static event-handlers omdat je in de CreateDelegate method de overload gebruikt waarbij je het type meegeeft van het target.
Als je ipv het type, het object dat het target is zélf meegeeft, zal het ws wel werken.

Wat is ei trouwens in je code?
Is o van het type Node ? Zoja, geef dan eens o mee aan de CreateDelegate ipv het type.

[ Voor 20% gewijzigd door whoami op 06-10-2004 14:30 ]

https://fgheysels.github.io/


  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Topicstarter
Thnx het is nu gefixed.
ei was trouwens het EventInfo wat uit o.GetType().GetEvent("blabla") kwam

Ik heb het nu als volgt gedaan:
C#:
1
2
Delegate ev_d = Delegate.CreateDelegate(ei.EventHandlerType,this,"Stepper");
ei.AddEventHandler(o,ev_d);


en nu werkt het. :P

Nu met Land Rover Series 3 en Defender 90