I would propose this alternative implementation where the mediator has reverted back to plain behavior (e.g not catching exceptions, and returning TResponseData or void).
I have exported the exception handling and Response return behavior to extension methods, while still preserving AggregateException for the base Notify methods (the async variant just relies on the default behavior of WhenAll).
I believe this gives maxmimum flexibility and leaves it up to callers which approach they prefer.
I would propose this alternative implementation where the mediator has reverted back to plain behavior (e.g not catching exceptions, and returning TResponseData or void).
I have exported the exception handling and Response return behavior to extension methods, while still preserving AggregateException for the base Notify methods (the async variant just relies on the default behavior of WhenAll).
I believe this gives maxmimum flexibility and leaves it up to callers which approach they prefer.