TinyMediator 1.0.0
See the version list below for details.
dotnet add package TinyMediator --version 1.0.0
NuGet\Install-Package TinyMediator -Version 1.0.0
<PackageReference Include="TinyMediator" Version="1.0.0" />
<PackageVersion Include="TinyMediator" Version="1.0.0" />
<PackageReference Include="TinyMediator" />
paket add TinyMediator --version 1.0.0
#r "nuget: TinyMediator, 1.0.0"
#:package TinyMediator@1.0.0
#addin nuget:?package=TinyMediator&version=1.0.0
#tool nuget:?package=TinyMediator&version=1.0.0
TinyMediator
A lightweight implementation of the Mediator pattern — with built-in source generation for automatic handler registration. Designed for minimal boilerplate and fast compile-time discovery.
Installation
via Nuget:
Install-Package TinyMediator
This will register both the mediator classes and the source-generating analyzer.
Basic Usage
- Define a Request and Handler
public class Ping : IRequest<Pong> { }
public class PingHandler : IRequestHandler<Ping, Pong>
{
public Task<Pong> Handle(Ping request, CancellationToken cancellationToken)
=> Task.FromResult(new Pong());
}
- Register Handlers Automatically
Add this line (or equivalent) to your Program.cs
and all of your IMediator
implementations
will be automatically registered from the generated source at compile-time.
services.AddTinyMediatorHandlers();
- Send Requests
var response = await mediator.Send(new Ping());
What's Inside
Component | Description |
---|---|
IRequest<T> / INotification |
Core abstractions for Mediator pattern |
IMediator |
Interface for sending requests and publishing notifications |
Source Generator | Auto-discovers and registers handlers at compile time |
AddMediatorHandlers() |
Partial method generated for DI registration |
Contributions
There are many, more robust libraries out there that implement the mediator pattern. I made this library for the simplest use case and wanted source generation to automate registrations without using reflection. If this is generally useful to others I might be surprised, but any suggestions or contributions are welcome.
License
MIT - Use, modify, and distribute it freely in open source and commercial projects.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CodeAnalysis.CSharp (>= 4.13.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.