public static TResult Send <TMessage, TResult>(this IReceives <TMessage> target, TMessage message) where TMessage : IMessage <TResult> { if (target.Receive(message).Get(out TResult result)) { return(result); } throw new InvalidOperationException( $"The given target object '{target}' did not handle the message '{message}'."); }
public static void Send <TMessage>(this IReceives <TMessage> target, TMessage message) where TMessage : IMessage <Nothing> { Send <TMessage, Nothing>(target, message); }