public static void RegisterHandler <TMessage>(this IBus dispatcher, TypedRequestHandlerDelegate <TMessage> handlerDelegate, Type messageType) where TMessage : IMessage { var requestTypeName = messageType.Name; dispatcher.RegisterHandler(requestTypeName, (scope, message) => { HandleCore(); return(false); void HandleCore() { var payloadJson = message.PayloadJson; if (string.IsNullOrEmpty(payloadJson)) { return; } var payload = (TMessage)JsonSerializer.Deserialize(payloadJson, messageType) !; handlerDelegate.Invoke(scope, payload, message); } }); }
public static void RegisterHandler(this IBus dispatcher, TypedRequestHandlerDelegate <IAfEvent> handlerDelegate, Type afEventType) => dispatcher.RegisterHandler <IAfEvent>(handlerDelegate, afEventType);
public static void RegisterHandler <TMessage>(this IBus dispatcher, TypedRequestHandlerDelegate <TMessage> handlerDelegate) where TMessage : IMessage => dispatcher.RegisterHandler(handlerDelegate, typeof(TMessage));