Class StreamEnumerableMessageArgumentResolver
- Namespace
- Silverback.Messaging.Subscribers.ArgumentResolvers
- Assembly
- Silverback.Core.dll
Resolves the parameters declared as IMessageStreamEnumerable<TMessage> where
TMessage is compatible with the type of the message being published.
public class StreamEnumerableMessageArgumentResolver : IStreamEnumerableMessageArgumentResolver, IMessageArgumentResolver, IArgumentResolver
- Inheritance
-
StreamEnumerableMessageArgumentResolver
- Implements
- Inherited Members
Constructors
StreamEnumerableMessageArgumentResolver()
public StreamEnumerableMessageArgumentResolver()
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
parameterTypeTypeThe 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
parameterTypeTypeThe 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
streamProviderIMessageStreamProviderThe IMessageStreamProvider being published.
targetMessageTypeTypeThe actual message type being declared by the subscribed method (e.g.
TMessagefor anIMessageStreamEnumerable<TMessage>).filtersIReadOnlyCollection<IMessageFilter>The filters to be applied.
Returns
- ILazyArgumentValue
The actual value to be forwarded to the subscribed method.