Table of Contents

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

TPayload
TResult
Inheritance
DynamicRouter<TPayload, TResult>
Inherited Members

Properties

RouteNames

Current ordered route names.

public IReadOnlyList<string> RouteNames { get; }

Property Value

IReadOnlyList<string>

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

name string
order int
predicate DynamicRouter<TPayload, TResult>.RoutePredicate
handler DynamicRouter<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

message Message<TPayload>
context MessageContext

Returns

TResult

Unregister(string)

Unregisters a route by name.

public bool Unregister(string name)

Parameters

name string

Returns

bool