有當一些訂閱的事件在我的課,或者我需要換行認購/ unsubsription的方法被通知的任何方式,例如:有什麼方法可以在訂閱事件/代理時得到通知?
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
}
}
,而不是
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
}
}
原因我問,因爲這個事件已經直接暴露在ISomeInterface
上,但是這個特定的實現需要知道什麼時候訂閱/取消訂閱。
請注意,使用此代碼事件訂閱不是線程安全的。實現這一點的簡單方法是將_someEvent標記爲事件。 – CodesInChaos 2012-02-06 10:41:00
輝煌,謝謝! – GazTheDestroyer 2012-02-06 10:45:16