CodeMediator 1.2.0
dotnet add package CodeMediator --version 1.2.0
NuGet\Install-Package CodeMediator -Version 1.2.0
<PackageReference Include="CodeMediator" Version="1.2.0" />
<PackageVersion Include="CodeMediator" Version="1.2.0" />
<PackageReference Include="CodeMediator" />
paket add CodeMediator --version 1.2.0
#r "nuget: CodeMediator, 1.2.0"
#:package CodeMediator@1.2.0
#addin nuget:?package=CodeMediator&version=1.2.0
#tool nuget:?package=CodeMediator&version=1.2.0
CodeMediator
CodeMediator é uma alternativa leve, gratuita e moderna ao MediatR para .NET. Ideal para aplicações que seguem o padrão CQRS, Clean Architecture ou simplesmente desejam desacoplar a comunicação entre componentes, sem depender de bibliotecas pesadas ou comerciais.
✨ Principais recursos
• Suporte a Commands, Queries e Notifications • Baixa dependência, alta performance • Pronto para testes e fácil de mockar • Sem reflection, proxies ou magia escondida • Compatível com .NET 6, .NET 7 e superior
🚀 Instalação
dotnet add package CodeMediator
🛠️ Exemplo de uso
- Defina seu Query e Handler:
public record GetUserByIdQuery(Guid Id) : IQuery<UserDto>;
public class GetUserByIdHandler : IQueryHandler<GetUserByIdQuery, UserDto> { public Task<UserDto> Handle(GetUserByIdQuery request, CancellationToken cancellationToken) { return Task.FromResult(new UserDto(request.Id, "João")); } }
- Use o IMediator no controller ou serviço:
public class UsersController : ControllerBase { private readonly IMediator _mediator;
public UsersController(IMediator mediator)
{
_mediator = mediator;
}
[HttpGet("{id}")]
public async Task<IActionResult> Get(Guid id)
{
var result = await _mediator.Send(new GetUserByIdQuery(id));
return Ok(result);
}
}
🧩 Integração com DI
Registre tudo de forma automática:
services.AddCodeMediator();
ou
services.AddCodeMediator(assemblyContainingHandlers: typeof(MyClass).Assembly);
📦 Roadmap
• [x] Suporte a ICommand e IQuery • [x] Suporte a INotification • [ ] Pipeline behaviors (pré e pós-execução) • [ ] Filtros e políticas de exceção • [ ] Documentação completa • [ ] Benchmarks comparativos
📄 Licença
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
🤝 Contribuindo
Contribuições são bem-vindas! Sinta-se à vontade para abrir uma issue, forkar o projeto ou enviar um pull request.
❤️ Agradecimentos
Inspirado por projetos como MediatR, Brighter e MinimalApiPlayground.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
-
net6.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.