Easy.Mediator
1.0.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Easy.Mediator --version 1.0.1
NuGet\Install-Package Easy.Mediator -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Easy.Mediator" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Easy.Mediator" Version="1.0.1" />
<PackageReference Include="Easy.Mediator" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Easy.Mediator --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Easy.Mediator, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Easy.Mediator@1.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Easy.Mediator&version=1.0.1
#tool nuget:?package=Easy.Mediator&version=1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Easy.Mediator
Easy.Mediator é uma biblioteca leve e extensível para implementar o padrão Mediator em aplicações .NET, facilitando a separação de responsabilidades e promovendo um código desacoplado.
Recursos
- Suporte a comandos (Request/Response) e notificações (Publish/Subscribe)
- Registro automático de handlers via Dependency Injection
- Compatível com .NET Standard 2.1 e .NET 9
- Integração simples com Microsoft.Extensions.DependencyInjection
Instalação
Adicione a referência ao pacote em seu projeto:
dotnet add package Easy.Mediator
Uso Básico
Implementando Notifications (Publish/Subscribe)
1. Defina uma Notification
public record NewUserNotification(string UserName, string Message) : INotification;
2. Implemente um NotificationHandler
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. Publique a 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!
Implementando Requests (Request/Response)
1. Defina um Request e um Response
public record PingCommand(string Message) : IRequest<PongResponse>;
public record PongResponse(string Message);
2. Implemente um RequestHandler
public class PingCommandHandler : IRequestHandler<PingCommand, PongResponse>
{
public Task<PongResponse> Handle(PingCommand request, CancellationToken cancellationToken = default)
{
return Task.FromResult(new PongResponse($"{request.Message} => Pong!"));
}
}
3. Envie o Request e obtenha o Response
var response = await mediator.Send(new PingCommand("Ping!"));
Console.WriteLine(response.Message); // Ping! => Pong!
Licença
MIT License. Veja o arquivo LICENSE.txt para mais detalhes.
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.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.