Reflection - Fügt einen Delegaten zur Aufrufliste eines anderen Delegaten hinzu

8

Ich versuche, einen Delegaten an eine Aufrufliste eines anderen Delegaten anzuhängen. Dadurch erreiche ich eine Art Hook bei bestehenden Ereignissen. Ich muss etwas anschließen, das nach jedem Ereignis ausgeführt wird, das aufgerufen wird.

Das folgende Beispiel funktioniert , solange der Delegate, der durch den Typ und die Aktion, die ich eingib, offengelegt wird, die exakt gleiche Signatur hat. (On1 und OnAll Ereignisse sind beide mit einem Action-Delegaten deklariert, so dass es funktioniert).

Code: Wie verbinde ich eine Aktion mit einem vorhandenen Delegaten, der durch einen Ereignismodifikator verfügbar gemacht wird.

%Vor%

Das Beispiel:

%Vor%

Das Problem : Wenn der Delegierte, der mit einem Ereignismodifikator im Tester angezeigt wird, nicht dieselbe Signatur hat, erhalte ich eine gut gesuchte und offensichtliche Ausnahme, die (in meinen Worten) das% co_de angibt % kann nicht zu einer Aufrufliste von Action hinzugefügt werden. macht Sinn.

Nur um klar zu sein, beschreibe ich folgendes:

%Vor%

Was ich suche, ist eine Möglichkeit, einen anderen Delegaten des gleichen Typs wie den EventHandlerType zu erstellen. Um dies zu tun, muss ich eine Methode mit der Signatur i von EventHandlerType erstellen, die intern eine Aktion aufruft.

etwas wie:

%Vor%     
eran otzap 18.05.2015, 11:16
quelle

1 Antwort

10

Das scheint zu funktionieren ... Es gibt verschiedene Kommentare ... Ich bin mir nicht sicher, ob dies der beste Weg ist. Ich baue eine Expression Struktur, um den Delegate-Aufruf auszuführen.

%Vor%     
xanatos 18.05.2015, 11:32
quelle

Tags und Links