Show / Hide Table of Contents

Class MessageHandler

Represents base class for declaring typed message handlers.

Inheritance
object
MessageHandler
Implements
IBuildable<MessageHandler, MessageHandler.Builder>
IInputChannel
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
object.ToString()
Namespace: DotNext.Net.Cluster.Messaging
Assembly: DotNext.Net.Cluster.dll
Syntax
public class MessageHandler : IBuildable<MessageHandler, MessageHandler.Builder>, IInputChannel
Remarks

The handler can be constructed in two ways: using MessageHandler.Builder and through inheritance. If you choose the inheritance then message handlers must be declared as public instance methods with one of the following signatures:

// duplex message handlers
Task<Result> HandleAsync(InputMessage input, CancellationToken token);
Task<Result> HandleAsync(ISubscriber sender, InputMessage input, CancellationToken token);
Task<Result> HandleAsync(InputMessage input, object? context, CancellationToken token);
Task<Result> HandleAsync(ISubscriber sender, InputMessage input, object? context, CancellationToken token);
// signal message handlers
Task HandleAsync(InputMessage input, CancellationToken token);
Task HandleAsync(ISubscriber sender, InputMessage input, CancellationToken token);
Task HandleAsync(InputMessage input, object? context, CancellationToken token);
Task HandleAsync(ISubscriber sender, InputMessage input, object? context, CancellationToken token);

Otherwise, command handlers can be registered through the builder.

Constructors

| Edit this page View Source

MessageHandler()

Initializes a new typed message handler and discover all methods suitable for handling messages.

Declaration
protected MessageHandler()

Implements

IBuildable<TSelf, TBuilder>
IInputChannel

Extension Methods

BasicExtensions.As<T>(T)
BasicExtensions.GetUserData<T>(T)
BasicExtensions.IsBetween<T, TLowerBound, TUpperBound>(T, TLowerBound, TUpperBound)
BasicExtensions.IsOneOf<T>(T, ReadOnlySpan<T>)
ExpressionBuilder.Const<T>(T)
AsyncLockAcquisition.AcquireLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireLockAsync<T>(T, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireReadLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireReadLockAsync<T>(T, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, bool, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, bool, TimeSpan, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, CancellationToken)
AsyncLockAcquisition.AcquireWriteLockAsync<T>(T, TimeSpan, CancellationToken)
LockAcquisition.AcquireReadLock<T>(T)
LockAcquisition.AcquireReadLock<T>(T, TimeSpan)
LockAcquisition.AcquireUpgradeableReadLock<T>(T)
LockAcquisition.AcquireUpgradeableReadLock<T>(T, TimeSpan)
LockAcquisition.AcquireWriteLock<T>(T)
LockAcquisition.AcquireWriteLock<T>(T, TimeSpan)
  • Edit this page
  • View Source
☀
☾
In this article
Back to top
Supported by the .NET Foundation
☀
☾