Class DynamicRouter<TPayload, TResult>
- Namespace
- PatternKit.Messaging.Routing
- Assembly
- PatternKit.Core.dll
Dynamic router that keeps a runtime-updatable route table and routes each message through the current snapshot.
public sealed class DynamicRouter<TPayload, TResult>
Type Parameters
TPayloadTResult
- Inheritance
-
DynamicRouter<TPayload, TResult>
- Inherited Members
Properties
RouteNames
Current ordered route names.
public IReadOnlyList<string> RouteNames { get; }
Property Value
Methods
Create()
Creates a new dynamic router builder.
public static DynamicRouter<TPayload, TResult>.Builder Create()
Returns
- DynamicRouter<TPayload, TResult>.Builder
Register(string, int, RoutePredicate, RouteHandler)
Registers or replaces a route in the runtime route table.
public DynamicRouter<TPayload, TResult> Register(string name, int order, DynamicRouter<TPayload, TResult>.RoutePredicate predicate, DynamicRouter<TPayload, TResult>.RouteHandler handler)
Parameters
namestringorderintpredicateDynamicRouter<TPayload, TResult>.RoutePredicatehandlerDynamicRouter<TPayload, TResult>.RouteHandler
Returns
- DynamicRouter<TPayload, TResult>
Route(Message<TPayload>, MessageContext?)
Routes message through the current route snapshot.
public TResult Route(Message<TPayload> message, MessageContext? context = null)
Parameters
messageMessage<TPayload>contextMessageContext
Returns
- TResult
Unregister(string)
Unregisters a route by name.
public bool Unregister(string name)
Parameters
namestring