Easy.Mediator
1.1.1
See the version list below for details.
dotnet add package Easy.Mediator --version 1.1.1
NuGet\Install-Package Easy.Mediator -Version 1.1.1
<PackageReference Include="Easy.Mediator" Version="1.1.1" />
<PackageVersion Include="Easy.Mediator" Version="1.1.1" />
<PackageReference Include="Easy.Mediator" />
paket add Easy.Mediator --version 1.1.1
#r "nuget: Easy.Mediator, 1.1.1"
#:package Easy.Mediator@1.1.1
#addin nuget:?package=Easy.Mediator&version=1.1.1
#tool nuget:?package=Easy.Mediator&version=1.1.1
🚀 Easy.Mediator
Easy.Mediator is a lightweight, extensible, and intuitive library for implementing the Mediator pattern in .NET applications. It helps you separate concerns, reduce coupling, and keep your code clean and testable.
✨ Features
- ✅ Supports Requests/Responses and Notifications
- ⚙️ Automatic handler registration via Dependency Injection
- 🔄 Compatible with .NET Standard 2.1, .NET CORE and .NET 5+ or higher
- 🔌 Seamless integration with
Microsoft.Extensions.DependencyInjection
- 📦 use-friendly
📦 Installation
Install via the .NET CLI:
dotnet add package Easy.Mediator
🚀 Basic Usage
🔔 Handling Notifications
1. Define a notification
public record NewUserNotification(string UserName, string Message) : INotification;
2. Implement a notification handler
public class EmailNotificationHandler : INotificationHandler<NewUserNotification>
{
public Task Handle(NewUserNotification notification, CancellationToken cancellationToken = default)
{
Console.WriteLine($"[Email] To: {notification.UserName} - {notification.Message}");
return Task.CompletedTask;
}
}
3. Publish the notification
var services = new ServiceCollection();
services.AddEasyMediator();
var provider = services.BuildServiceProvider();
var mediator = provider.GetRequiredService<IMediator>();
await mediator.Publish(new NewUserNotification("Bob", "Bem-vindo!"));
//[Email] To: Bob - Welcome to the system!
📬 Handling Requests (Request/Response)
1. Define a request and its response
public record PingCommand(string Message) : IRequest<PongResponse>;
public record PongResponse(string Message);
2. Implement a request handler
public class PingCommandHandler : IRequestHandler<PingCommand, PongResponse>
{
public Task<PongResponse> Handle(PingCommand request, CancellationToken cancellationToken = default)
{
return Task.FromResult(new PongResponse($"{request.Message} => Pong!"));
}
}
3. Send the request and receive the response
var response = await mediator.Send(new PingCommand("Ping!"));
Console.WriteLine(response.Message); // Ping! => Pong!
📃 License
This project is licensed under the MIT License.
You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software, provided that you include the original copyright and license notice.
See the License.txt file for full details.
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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- Easy.Mediator.Abstractions (>= 1.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.