non v'è alcun modo di essere avvisato quando qualcosa sottoscrive un evento nella mia classe, o ho bisogno di avvolgere di sottoscrizione/unsubsription in metodi per esempio:Un modo per essere avvisati quando qualcosa si iscrive ad un evento/delegato?
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
}
}
invece di
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 ragione Chiedo è perché l'evento è già esposto direttamente su un ISomeInterface
ma questa particolare implementazione deve sapere quando le cose si abbonano/si annullano.
Si noti che con questo codice di sottoscrizione evento non è protetto da thread. Un modo semplice per ottenerlo è contrassegnare '_someEvent' anche come evento. – CodesInChaos
Brillante, grazie! – GazTheDestroyer