Search Results for

    Show / Hide Table of Contents

    Class EventBus<TEvent>

    event notification bus which uses an in-process pub/sub messaging system

    Inheritance
    object
    EventBase
    EventBus<TEvent>
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: FastEndpoints
    Assembly: FastEndpoints.dll
    Syntax
    public sealed class EventBus<TEvent> : EventBase where TEvent : notnull
    Type Parameters
    Name Description
    TEvent

    the type of notification event dto

    Constructors

    EventBus(IEnumerable<IEventHandler<TEvent>>?, IEventReceiver<TEvent>?)

    instantiates an event bus for the given event dto type.

    Declaration
    public EventBus(IEnumerable<IEventHandler<TEvent>>? eventHandlers = null, IEventReceiver<TEvent>? testEventReceiver = null)
    Parameters
    Type Name Description
    IEnumerable<IEventHandler<TEvent>> eventHandlers

    a collection of concrete event handler implementations that should receive notifications from this event bus

    IEventReceiver<TEvent> testEventReceiver

    a test event receiver that can be used to assert receipt of events

    Methods

    PublishAsync(TEvent, Mode, CancellationToken)

    publish the given model/dto to all the subscribers of the event notification

    Declaration
    public Task PublishAsync(TEvent eventModel, Mode waitMode = Mode.WaitForAll, CancellationToken cancellation = default)
    Parameters
    Type Name Description
    TEvent eventModel

    the notification event model/dto to publish

    Mode waitMode

    specify whether to wait for none, any or all of the subscribers to complete their work

    CancellationToken cancellation

    an optional cancellation token

    Returns
    Type Description
    Task

    a Task that matches the wait mode specified. WaitForNone returns an already completed Task (fire and forget). WaitForAny returns a Task that will complete when any of the subscribers complete their work. WaitForAll return a Task that will complete only when all the subscribers complete their work.

    PublishFilteredAsync(TEvent, Func<Type, bool>, Mode, CancellationToken)

    publish the given model/dto to a subset of the subscribers of the event notification

    Declaration
    public Task PublishFilteredAsync(TEvent eventModel, Func<Type, bool> handlerFilter, Mode waitMode = Mode.WaitForAll, CancellationToken cancellation = default)
    Parameters
    Type Name Description
    TEvent eventModel

    the notification event model/dto to publish

    Func<Type, bool> handlerFilter

    a predicate for selecting which of the registered event handlers should be executed. if the predicate returns false for a particular event handler, that handler will not be executed during the invocation.

    Mode waitMode

    specify whether to wait for none, any or all of the subscribers to complete their work

    CancellationToken cancellation

    an optional cancellation token

    Returns
    Type Description
    Task

    a Task that matches the wait mode specified. WaitForNone returns an already completed Task (fire and forget). WaitForAny returns a Task that will complete when any of the subscribers complete their work. WaitForAll return a Task that will complete only when all the subscribers complete their work.

    In this article
    Back to top Developed by Đĵ ΝιΓΞΗΛψΚ and contributors / Licensed under MIT / Website generated by DocFX