PortablePrism.Portable by Andrii Chebukin

<PackageReference Include="PortablePrism.Portable" Version="1.0.1" />

 EventSubscription<TPayload>

public class EventSubscription<TPayload> : IEventSubscription
Provides a way to retrieve a Delegate to execute an action depending on the value of a second filter predicate that returns true if the action should execute.
public Action<TPayload> Action { get; }

Gets the target Action<T> that is referenced by the IDelegateReference.

public Predicate<TPayload> Filter { get; }

Gets the target Predicate<T> that is referenced by the IDelegateReference.

public SubscriptionToken SubscriptionToken { get; set; }

Gets or sets a SubscriptionToken that identifies this IEventSubscription.

public EventSubscription(IDelegateReference actionReference, IDelegateReference filterReference)

Creates a new instance of EventSubscription<T>.

public virtual Action<object[]> GetExecutionStrategy()

Gets the execution strategy to publish this event.

public virtual void InvokeAction(Action<TPayload> action, TPayload argument)

Invokes the specified Action<T> synchronously when not overriden.