NsMediatoR 1.0.0
dotnet add package NsMediatoR --version 1.0.0
NuGet\Install-Package NsMediatoR -Version 1.0.0
<PackageReference Include="NsMediatoR" Version="1.0.0" />
<PackageVersion Include="NsMediatoR" Version="1.0.0" />
<PackageReference Include="NsMediatoR" />
paket add NsMediatoR --version 1.0.0
#r "nuget: NsMediatoR, 1.0.0"
#:package NsMediatoR@1.0.0
#addin nuget:?package=NsMediatoR&version=1.0.0
#tool nuget:?package=NsMediatoR&version=1.0.0
NsMediatoR
Uma implementação simples e leve do padrão Mediator para .NET, similar ao MediatR.
📋 Sobre
NsMediatoR é uma biblioteca que implementa o padrão Mediator, facilitando a comunicação entre componentes da sua aplicação de forma desacoplada. Permite o envio de requests/responses e publicação de notifications.
✨ Características
- 🚀 Simples e leve
- 📦 Compatível com .NET Standard 2.1
- 🔧 Integração com Microsoft.Extensions.DependencyInjection
- 📨 Suporte a Requests/Responses
- 📢 Suporte a Notifications
- ⚡ Operações assíncronas com CancellationToken
📦 Instalação
dotnet add package NsMediatoR
🚀 Como Usar
1. Configuração no Startup/Program.cs
using NsMediatoR.Extensions;
// Configure os serviços
services.AddNsMediatoR(typeof(Program).Assembly);
2. Criando um Request/Response
using NsMediatoR.Interfaces;
// Request
public class GetUserQuery : IRequest<UserDto>
{
public int Id { get; set; }
}
// Response
public class UserDto
{
public int Id { get; set; }
public string Name { get; set; }
}
// Handler
public class GetUserHandler : IRequestHandler<GetUserQuery, UserDto>
{
public async Task<UserDto> Handle(GetUserQuery request, CancellationToken cancellationToken)
{
// Lógica para buscar o usuário
return new UserDto { Id = request.Id, Name = "João" };
}
}
3. Criando uma Notification
using NsMediatoR.Interfaces;
// Notification
public class UserCreatedNotification : INotification
{
public int UserId { get; set; }
public string UserName { get; set; }
}
// Handler
public class UserCreatedHandler : INotificationHandler<UserCreatedNotification>
{
public async Task Handle(UserCreatedNotification notification, CancellationToken cancellationToken)
{
// Lógica para processar a notificação
Console.WriteLine($"Usuário {notification.UserName} foi criado!");
}
}
4. Usando o Mediator
public class UserController
{
private readonly IMediator _mediator;
public UserController(IMediator mediator)
{
_mediator = mediator;
}
public async Task<UserDto> GetUser(int id)
{
var query = new GetUserQuery { Id = id };
return await _mediator.Send(query);
}
public async Task CreateUser(string name)
{
// ... lógica de criação ...
var notification = new UserCreatedNotification
{
UserId = 1,
UserName = name
};
await _mediator.Publish(notification);
}
}
📚 Interfaces Disponíveis
IMediator- Interface principal para envio de requests e publicação de notificationsIRequest<TResponse>- Interface para requests que retornam uma responseIRequestHandler<TRequest, TResponse>- Interface para handlers de requestsINotification- Interface para notificationsINotificationHandler<TNotification>- Interface para handlers de notifications
🛠️ Requisitos
- .NET Standard 2.1+
- Microsoft.Extensions.DependencyInjection 8.0.1+
👨💻 Autor
Vinicius Ramos
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests.
⭐ Se este projeto foi útil para você, considere dar uma estrela!
| 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
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 137 | 2/1/2026 |