¿Hay alguna forma de ser notificado cuando algo se suscribe a un evento en mi clase, o necesito para envolver suscripción/unsubsription en los métodos por ejemplo:¿Alguna forma de ser notificado cuando algo se suscribe a un evento/delegado?
public class MyClass : ISomeInterface
{
public event SomeEventHandler SomeEvent; //How do I know when something subscribes?
private void OnSomeEventSubscription(SomeEventHandler handler)
{
//do some work
}
private void OnSomeEventUnsubscription(SomeEventHandler handler)
{
//do some work
}
}
en lugar de
public class MyClass : ISomeInterface
{
private SomeEventHandler _someEvent;
public void SubscribeToSomeEvent(SomeEventHandler handler)
{
_someEvent += handler;
//do some work
}
public void UnsubscribeFromSomeEvent(SomeEventHandler handler)
{
_someEvent -= handler;
//do some work
}
}
La razón Lo pregunto es porque el evento ya está expuesto directamente en un ISomeInterface
, pero esta implementación particular necesita saber cuándo se suscribe/anula la suscripción.
Tenga en cuenta que con este código la suscripción de eventos no es segura. Una manera fácil de lograr eso es marcar '_someEvent' como evento también. – CodesInChaos
Brillante, gracias! – GazTheDestroyer