Table of Contents

Class ObservableStreamMessageArgumentResolver

Namespace
Silverback.Messaging.Subscribers.ArgumentResolvers
Assembly
Silverback.Core.Rx.dll

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

public class ObservableStreamMessageArgumentResolver : IStreamEnumerableMessageArgumentResolver, IMessageArgumentResolver, IArgumentResolver
Inheritance
ObservableStreamMessageArgumentResolver
Implements
Inherited Members

Constructors

ObservableStreamMessageArgumentResolver()

public ObservableStreamMessageArgumentResolver()

Methods

CanResolve(Type)

Returns a boolean value indicating whether this resolver instance can handle the parameter of the specified type.

public bool CanResolve(Type parameterType)

Parameters

parameterType Type

The type of the parameter to be resolved.

Returns

bool

A boolean value indicating whether the specified parameter type can be handled.

GetMessageType(Type)

Returns the actual message type in the specified parameter type (e.g. TMessage) for a parameter declared as IEnumerable<TMessage>.

public Type GetMessageType(Type parameterType)

Parameters

parameterType Type

The type of the parameter to be resolved.

Returns

Type

The actual message type.

GetValue(IMessageStreamProvider, Type, IReadOnlyCollection<IMessageFilter>?)

Returns the messages stream in a shape that is compatible with the subscribed method.

public ILazyArgumentValue GetValue(IMessageStreamProvider streamProvider, Type targetMessageType, IReadOnlyCollection<IMessageFilter>? filters = null)

Parameters

streamProvider IMessageStreamProvider

The IMessageStreamProvider being published.

targetMessageType Type

The actual message type being declared by the subscribed method (e.g. TMessage for an IMessageStreamEnumerable<TMessage>).

filters IReadOnlyCollection<IMessageFilter>

The filters to be applied.

Returns

ILazyArgumentValue

The actual value to be forwarded to the subscribed method.