profileShare

rasmusjy / splitapp-backend-microservices

Read-only snapshot

No repository description.

main default branch 501 files Expires Sep 13, 2026, 9:06 AM
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