Biss.Mediator.Behaviors
2.0.0
dotnet add package Biss.Mediator.Behaviors --version 2.0.0
NuGet\Install-Package Biss.Mediator.Behaviors -Version 2.0.0
<PackageReference Include="Biss.Mediator.Behaviors" Version="2.0.0" />
<PackageVersion Include="Biss.Mediator.Behaviors" Version="2.0.0" />
<PackageReference Include="Biss.Mediator.Behaviors" />
paket add Biss.Mediator.Behaviors --version 2.0.0
#r "nuget: Biss.Mediator.Behaviors, 2.0.0"
#:package Biss.Mediator.Behaviors@2.0.0
#addin nuget:?package=Biss.Mediator.Behaviors&version=2.0.0
#tool nuget:?package=Biss.Mediator.Behaviors&version=2.0.0
Biss.Mediator.Behaviors
Pipeline behaviors pré-implementados para Biss.Mediator.
📦 Instalação
dotnet add package Biss.Mediator.Behaviors
🎯 Behaviors Disponíveis
1. LoggingBehavior
Regista logs de todas as requisições e seus resultados (tipo do pedido, duração; em falhas de Result, código e mensagem do erro). Não coloques dados sensíveis em Error.Message se usares este behavior. O README raiz do repositório tem uma secção Privacidade (logs e cache).
services.AddMediatorLoggingBehavior();
2. ValidationBehavior
Executa primeiro FluentValidation (todos os IValidator<TRequest> registados no DI) e depois Data Annotations no modelo do pedido.
// Opcional: validadores FluentValidation (pacote FluentValidation.DependencyInjectionExtensions)
services.AddValidatorsFromAssemblyContaining<Program>();
services.AddMediatorValidationBehavior();
3. PerformanceBehavior
Monitora performance e alerta sobre requisições lentas.
services.AddMediatorPerformanceBehavior(
slowRequestThreshold: TimeSpan.FromMilliseconds(1000));
4. CachingBehavior
Adiciona cache automático para queries.
O CachingBehavior resolve IMemoryCache — regista o cache em memória antes (ou usa um pacote que o faça):
services.AddMemoryCache();
services.AddMediatorCachingBehavior(
defaultCacheDuration: TimeSpan.FromMinutes(5));
A chave de cache usa o nome completo do tipo do pedido + hash SHA-256 (hex) de um JSON das propriedades públicas (ver código). Evita cachear queries cujo payload inclua PII sem avaliação de risco.
5. RetryBehavior
Implementa retry automático para requisições que falham.
services.AddMediatorRetryBehavior(
maxRetryAttempts: 3,
delayBetweenRetries: TimeSpan.FromMilliseconds(500));
6. TransactionBehavior
Gerencia transações de banco de dados automaticamente.
services.AddMediatorTransactionBehavior();
🚀 Uso Completo
using Biss.Mediator.Behaviors;
services.AddMemoryCache(); // necessário se usares cache (CachingBehavior nas opções)
// Adicionar todos os behaviors de uma vez
services.AddMediatorBehaviors(options =>
{
options.SlowRequestThreshold = TimeSpan.FromMilliseconds(1000);
options.DefaultCacheDuration = TimeSpan.FromMinutes(5);
options.MaxRetryAttempts = 3;
});
Dependências
Este pacote referencia:
Biss.Mediator.Abstractions- FluentValidation (usado pelo
ValidationBehavior)
Na aplicação, para registar IValidator<T> no DI, usa normalmente o pacote FluentValidation.DependencyInjectionExtensions (ex.: AddValidatorsFromAssemblyContaining<Program>()).
Links
Licença
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Biss.Mediator.Abstractions (>= 2.0.0)
- FluentValidation (>= 11.11.0)
- Microsoft.Extensions.Caching.Abstractions (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.