Gibt es eine Möglichkeit festzustellen, ob einem Objekt ein Ereignishandler hinzugefügt wurde? Ich serialisiere eine Liste von Objekten in den Sitzungsstatus / aus dem Sitzungsstatus heraus, damit wir den SQL-basierten Sitzungsstatus verwenden können ... Wenn für ein Objekt in der Liste eine Eigenschaft geändert wurde, muss es markiert werden, was der Ereignishandler zuvor ordnungsgemäß erledigt hat . Wenn die Objekte jetzt deserialisiert werden, wird der Ereignishandler nicht mehr abgerufen.
In einem Anfall von leichtem Ärger habe ich gerade den Ereignishandler zur Get-Eigenschaft hinzugefügt, die auf das Objekt zugreift. Es wird jetzt aufgerufen, was großartig ist, außer dass es ungefähr fünfmal aufgerufen wird. Ich denke, der Handler wird jedes Mal hinzugefügt, wenn auf das Objekt zugegriffen wird.
Es ist wirklich sicher genug, um es einfach zu ignorieren, aber ich würde es lieber so viel sauberer machen, indem ich überprüfe, ob der Handler bereits hinzugefügt wurde, also mache ich das nur einmal.
Ist das möglich?
BEARBEITEN: Ich habe nicht unbedingt die volle Kontrolle darüber, welche Ereignishandler hinzugefügt werden. Es reicht also nicht aus, nur auf Null zu prüfen.