One.More.Lib.For.MediatR
2.0.1
See the version list below for details.
dotnet add package One.More.Lib.For.MediatR --version 2.0.1
NuGet\Install-Package One.More.Lib.For.MediatR -Version 2.0.1
<PackageReference Include="One.More.Lib.For.MediatR" Version="2.0.1" />
paket add One.More.Lib.For.MediatR --version 2.0.1
#r "nuget: One.More.Lib.For.MediatR, 2.0.1"
// Install One.More.Lib.For.MediatR as a Cake Addin #addin nuget:?package=One.More.Lib.For.MediatR&version=2.0.1 // Install One.More.Lib.For.MediatR as a Cake Tool #tool nuget:?package=One.More.Lib.For.MediatR&version=2.0.1
One More Lib For MediatR
As the name suggests, a new library that extends MediatR with integrated PipelineBehavior:
- Performance Logger
- MemoryCache
- Validation with FluentValidation
- Retry Pattern with Polly
Installing One.More.Lib.For.MediatR
We recommend using NuGet:
Install-Package One.More.Lib.For.MediatR
Or via the .NET Core command line interface:
dotnet add package One.More.Lib.For.MediatR
Performance Logger PipelineBehavior
How to configure it?
The simplest way:
builder.Services.AddMediatRExtensions(configuration => configuration.PerformanceLoggerSupport = true);
If you want to configure it:
builder.Services.AddMediatRExtensions(configuration => configuration.AddPerformanceLoggerSupport(500));
How yo use it?
Nothing to do. Requests will be loggued.
MemoryCache PipelineBehavior
How to configure it?
The simplest way:
builder.Services.AddMediatRExtensions(configuration => configuration.MemoryCacheSupport = true);
If you want to configure it:
builder.Services.AddMediatRExtensions(configuration => configuration.AddMemoryCacheSupport(slidingExpiration: TimeSpan.FromMinutes(10), priority: CacheItemPriority.Low));
How yo use it?
Just add [MemoryCache] attribute on requests classes or records.
[MemoryCache]
public class GetUserByName : IRequest<User?>
{
public string Name { get; set; }
}
Or you can configure more option request by request.
[MemoryCache(Absolute)]
public class GetUserByName : IRequest<User?>
{
public string Name { get; set; }
}
Validation with FluentValidation
How to configure it?
There is not simplest way because you need to enter the assemblies to be scanned for FluentValidation:
builder.Services.AddMediatRExtensions(configuration => configuration.AddFluentValidationSupport(new[] { typeof(Program).Assembly }));
How to use it?
Nothing to do, just create Validation rules. If a rule is not respected a ValidationException will be thrown.
Retry Pattern with Polly
How to configure it?
The simplest way:
builder.Services.AddMediatRExtensions(configuration => configuration.RetrySupport = true);
If you want to configure it:
builder.Services.AddMediatRExtensions(configuration => configuration.AddRetrySupport(retryCount: 3, retryDelay: 100));
How to use it?
Just add [RetryPolicy] attribute on requests classes or records.
[RetryPolicy]
public class GetUserByName : IRequest<User?>
{
public string Name { get; set; }
}
Or you can override default values by passing them in the RetryPolicy Attribute
[RetryPolicy(OverrideRetryCount = true, RetryCount = 5)]
public class GetUserByName : IRequest<User?>
{
public string Name { get; set; }
}
[RetryPolicy(OverrideRetryDelay = true, RetryDelay = 200)]
public class GetUserByName : IRequest<User?>
{
public string Name { get; set; }
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. 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 is compatible. 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. |
-
net7.0
- AsyncLinqR (>= 1.0.0)
- FluentValidation (>= 11.9.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.9.0)
- MediatR (>= 12.2.0)
- Microsoft.Extensions.Caching.Memory (>= 8.0.0)
- Polly (>= 8.3.1)
-
net8.0
- AsyncLinqR (>= 1.0.0)
- FluentValidation (>= 11.9.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.9.0)
- MediatR (>= 12.2.0)
- Microsoft.Extensions.Caching.Memory (>= 8.0.0)
- Polly (>= 8.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.