Update logic to make DefaultMessageManager fail on InvalidMessageHandlerSignatureException #169
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available: DOTNET-7824
Description of changes:
Problem
The issue is that when an exception occurs during dependency injection, we are swallowing that error and not showing the error to the user when they invoke the function. Specifically the issue can be reproduced with something like this
the user would run the messaging tool and see this as the output
which does not provide and detail on what went wrong.
Issue
This line
was the one throwing an
InvalidOperationExceptionwhen an issue occurred during DI initialization.Fix
In order to fix this, i catch the exception when dependency injection fails, and then eventually re-throw it, which then displays on the UI as an error.
The reason for changing
GetServicetoGetRequiredServiceis becauseGetRequiredServicethrows an exception when it cannot get the service (GetService i think is throwing the error too in this specific scenario because its an exception occuring in the constructor of something during DI), which can be caught in one place. Technically, i could have also try/catched theGetServicetoo, but then i would have had some duplicate for when I catch the exception and whenhandleris null, so I just useGetRequiredServiceto make things easier.Note: This change also affects the other scenarios which use the
InvalidMessageHandlerSignatureExceptionerror. However, i believe these errors should also be treated as fatal, since that is what is listed hereBy submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.