Wie würden Sie ein C# -Ereignis dynamisch abonnieren, so dass Sie bei einer Objektinstanz und einem String-Namen, der den Namen des Ereignisses enthält, dieses Ereignis abonnieren und etwas tun (z. B. in die Konsole schreiben) Dieses Ereignis wurde gefeuert?C# Dynamic Event Subskription
Es scheint, mit Reflexion ist dies nicht möglich, und ich möchte vermeiden, Reflection.Emit wenn möglich zu verwenden, wie dies derzeit (für mich) scheint die einzige Möglichkeit, es zu tun.
/EDIT: ich die Unterschrift des Delegierten für die Veranstaltung benötigt nicht wissen, ist dies der Kern des Problems
/EDIT 2: Obwohl Delegierte Kontra wie ein guter Plan scheint, ich kann die Annahme nicht notwendig machen, diese Lösung zu verwenden
Hölle, Ausdruck Bäume sind so cool. Ich habe einen ähnlichen Code einmal über Reflection.Emit geschrieben. Was für ein Schmerz. –
Tolles Stück Code. Kannst du vielleicht zeigen, wie man es ändert, um Argumente zu unterstützen? Ich habe es geändert, um die Methode mit den Argumenten zu erhalten, aber ich erhalte "Variable 'x' vom Typ 'System.String', auf den von Scope '' verwiesen wird, aber es ist nicht definiert", wenn ich versuche, den Delegaten zu erstellen. Danke –
Done-I fügte ein weiteres Beispiel hinzu. –