comments

Since the SubscriptionToken is instantiated by the EventBase itself, nothing would prevent it from passing itself to the token, so that upon disposing the token, it would know which event to call Unsubscribe on.

This is the way Rx extensions do it already, and the intended usage of IObservable.Subscribe.

I'd strongly encourage the team to look for potential refactorings that will make event aggregator Rx-compatible and IObservable/IObserver-based. The current APIs look a little dated with what's coming out of Rx...

To make this implementation possible, an Action is passed when constructing the SubscriptionToken, which is basically the Unsubcribe method group in the EventBase. Hence, when disposing the SubscriptionToken, this action is executed, thus unsubscribing the
event.