suscribir removehandler evento event delete custom attach c# .net silverlight event-handling

removehandler - subscribe to custom event c#



Controladores de eventos C# (3)

Es posible obtener una lista de todos los suscriptores llamando a GetInvocationList ()

public class Foo { public int GetSubscriberCount() { var count = 0; var eventHandler = this.CustomEvent; if(eventHandler != null) { count = eventHandler.GetInvocationList().Length; } return count; } public event EventHandler CustomEvent; }

¿Hay alguna forma de obtener el número de manejadores de eventos adjuntos al evento? El problema es que en algún lugar del código continúa adjuntando manejadores a un evento, ¿cómo puede resolverse?


Puede implementar sus propios métodos para agregar / eliminar eventos:

private EventHandler _event; public event EventHandler MyEvent { add { if (_event == null) _event = value; _event += value; } remove { if (_event != null) _event -= value; } }


Puede sobreescribir la operación de agregar y eliminar (+ = y - =) para el evento como se ve en el siguiente código:

private int count = 0; public event EventHandler MyEvent { add { count++; // TODO: store event receiver } remove { count--; // TODO: remove event receiver } }