Skip to content

Add handler discovery of MediatR shim interfaces#2225

Merged
jeremydmiller merged 4 commits into
JasperFx:mainfrom
XL1TTE:issue-20202
Mar 2, 2026
Merged

Add handler discovery of MediatR shim interfaces#2225
jeremydmiller merged 4 commits into
JasperFx:mainfrom
XL1TTE:issue-20202

Conversation

@XL1TTE

@XL1TTE XL1TTE commented Feb 23, 2026

Copy link
Copy Markdown
Contributor

Implements IRequestHandler and IRequestHandler<T, TResponse> shim interfaces allowing MediatR-style handlers without MediatR dependency.

New files:

  • src/Wolverine/Shims/MediatR/IRequest.cs
  • src/Wolverine/Shims/MediatR/IRequestHandler.cs
  • src/Wolverine/Shims/MediatR/WolverineOptionsExtensions.cs
  • src/Testing/ShimsTests/ShimsTests.csproj
  • src/Testing/ShimsTests/MediatR/* (test files)

Modified:

  • build/build.cs - Added ShimsTests target
  • wolverine.sln - Added ShimsTests project

Key features:

  • No runtime reflection - uses TypeQuery discovery like IWolverineHandler
  • No MediatR dependency - pure shim interfaces
  • Full code generation support

Implements IRequestHandler<T> and IRequestHandler<T, TResponse> shim
interfaces allowing MediatR-style handlers without MediatR dependency.

New files:
- src/Wolverine/Shims/MediatR/IRequest.cs
- src/Wolverine/Shims/MediatR/IRequestHandler.cs
- src/Wolverine/Shims/MediatR/WolverineOptionsExtensions.cs
- src/Testing/ShimsTests/ShimsTests.csproj
- src/Testing/ShimsTests/MediatR/* (test files)

Modified:
- build/build.cs - Added ShimsTests target
- wolverine.sln - Added ShimsTests project

Key features:
- No runtime reflection - uses TypeQuery discovery like IWolverineHandler
- No MediatR dependency - pure shim interfaces
- Full code generation support
@XL1TTE

XL1TTE commented Feb 23, 2026

Copy link
Copy Markdown
Contributor Author

The CustomizeHandlerDiscovery feature has been utilized, allowing Wolverine to generate its own handlers, which helps eliminate reflection calls at runtime (Now i get it, thanks to Jeremy). It would be cool if users could migrate to Wolverine without having to explicitly change namespaces from MediatR's to Wolverine's. However, I understand it's likely not an option to reference non-MIT libraries from a commercial point of view.

@XL1TTE XL1TTE changed the title Add handler discovery of MediatR shim interfaces Add handler discovery of MediatR shim interfaces #20202 Feb 27, 2026
@XL1TTE XL1TTE changed the title Add handler discovery of MediatR shim interfaces #20202 Add handler discovery of MediatR shim interfaces Feb 27, 2026
@jeremydmiller

Copy link
Copy Markdown
Member

@XL1TTE I'm going to get this in pretty soon, but move things around just a bit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants