MessageHandlerRegistration.cs
878 bytes
| 1 | namespace SplitApp.Shared.Messaging.Internal; |
|---|---|
| 2 | |
| 3 | /// <summary> |
| 4 | /// Dispatcher signature: deserialize body, resolve handler from the supplied scope, |
| 5 | /// invoke it. Returns the serialized response bytes for RPC handlers, or null for events. |
| 6 | /// </summary> |
| 7 | public delegate Task<byte[]?> MessageDispatcher( |
| 8 | ReadOnlyMemory<byte> body, |
| 9 | IServiceProvider scopedProvider, |
| 10 | CancellationToken cancellationToken); |
| 11 | |
| 12 | public enum MessageKind |
| 13 | { |
| 14 | Event, |
| 15 | Request, |
| 16 | } |
| 17 | |
| 18 | public class MessageHandlerRegistration |
| 19 | { |
| 20 | public required Type MessageType { get; init; } |
| 21 | public required Type HandlerType { get; init; } |
| 22 | public Type? ResponseType { get; init; } |
| 23 | public required string Exchange { get; init; } |
| 24 | public required string RoutingKey { get; init; } |
| 25 | public required MessageKind Kind { get; init; } |
| 26 | public required MessageDispatcher Dispatcher { get; init; } |
| 27 | } |
| 28 | |