Table of Contents

Namespace Silverback.Messaging.Subscribers.ArgumentResolvers

Classes

CancellationTokenArgumentResolver

Provides the CancellationToken to the subscribed method.

DefaultAdditionalArgumentResolver

Resolves the additional parameters of the subscribed methods using the IServiceProvider.

ObservableStreamMessageArgumentResolver

Resolves the parameters declared as IMessageStreamObservable<TMessage> where TMessage is compatible with the type of the message being published.

SingleMessageArgumentResolver

Resolves the parameters declared with a type that is compatible with the type of the message being published.

StreamEnumerableMessageArgumentResolver

Resolves the parameters declared as IMessageStreamEnumerable<TMessage> where TMessage is compatible with the type of the message being published.

TombstoneMessageArgumentResolver

Resolves the parameters declared as ITombstone or ITombstone<TMessage>.

Interfaces

IAdditionalArgumentResolver

These resolvers are used to try to get a value for the additional parameters (other than the message itself) of the subscribed methods.

IArgumentResolver

Used as base for the more specialized IMessageArgumentResolver and IAdditionalArgumentResolver.

ILazyArgumentValue

Represent a value for an argument that will be available in the future.

IMessageArgumentResolver

These resolvers are used to cast or transform the message parameter to be forwarded to the subscribed method.

ISingleMessageArgumentResolver

These resolvers are used to handle the single message parameter (the pure message, not wrapped in any enumerable or collection).

IStreamEnumerableMessageArgumentResolver

These resolvers are used to handle the message streams such as IMessageStreamEnumerable<TMessage>. The streams are basically handled as a single message by the publisher. The difference is that it is guaranteed that the subscribers are invoked from another thread, when published via PublishAsync(object, CancellationToken)/ PublishAsync<TResult>(object, CancellationToken). This is done to avoid blocking the original thread waiting for the stream to complete.