public T Invoke <T>(ISingleMessage <T> message)
        {
            AotCodeGenerator <T> .RegisterGenericValueType();

            if (!_handlers.TryGetValue(message.GetType(), out var @delegate))
            {
                return(MissingReturnValue <T>(
                           $"No handler returning type {typeof(T)} is registered for {message}"));
            }

            if (!(@delegate is Func <ISingleMessage <T>, T> func))
            {
                return(MissingReturnValue <T>(
                           $"Handler returning type {typeof(T)} for {message} is null"));
            }

            return(func.Invoke(message));
        }
예제 #2
0
 public static T Send <T>(ISingleMessage <T> message)
 {
     return(_mediator.Send(message));
 }
예제 #3
0
 public T Send <T>(ISingleMessage <T> message)
 {
     return(_singleMessageHandlers.Invoke(message));
 }