EasyRetry 2.0.1

.NET Core 3.1
dotnet add package EasyRetry --version 2.0.1
NuGet\Install-Package EasyRetry -Version 2.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="EasyRetry" Version="2.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add EasyRetry --version 2.0.1
#r "nuget: EasyRetry, 2.0.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install EasyRetry as a Cake Addin
#addin nuget:?package=EasyRetry&version=2.0.1

// Install EasyRetry as a Cake Tool
#tool nuget:?package=EasyRetry&version=2.0.1

Async/Await easy retry in c#

In Asynchronous programming in some cases we need to retry a method if it fails. Easy-Retry can provide this functionality with ease 😃

NuGet Installation
GitHub Source Code
.Net CLI
dotnet add package EasyRetry

Package Manager
Install-Package EasyRetry

Usage

Let's say there is a HTTP Task which you need to retry in case it fails

private async Task Task_NetworkBound()
{
    await new HttpClient().GetStringAsync("https://dotnetfoundation.org");
}

In order to retry it after 5 seconds you just need to do as follows

//With DI
await _easyRetry.Retry(async () => await Task_NetworkBound());

//Without DI
await new EasyRetry().Retry(async () => await Task_NetworkBound());

Or you can use the retry options to customize the behavior of the retry algorithm as follows

await _easyRetry.Retry(async () => await Task_NetworkBound()
    , new RetryOptions()
    {
        Attempts = 3,
        DelayBetweenRetries = TimeSpan.FromSeconds(3),
        DelayBeforeFirstTry = TimeSpan.FromSeconds(2),
        EnableLogging = true,
        DoNotRetryOnTheseExceptionTypes = new List<Type>()
        {
            typeof(NullReferenceException)
        }
    });
NuGet Installation
GitHub Source Code
Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp3.1
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on EasyRetry:

Package Downloads
EasyPipeLine

An easy implementation of chain of responsibility with builder pattern which will give a ready to use pipeline foundation

PipeNet

Simplify your complex flow into a well organize pipeline

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.1 7,000 12/10/2020
2.0.0 951 9/1/2020
1.1.1 444 8/24/2020
1.1.0 656 8/23/2020
1.0.1 498 8/23/2020
1.0.0 513 8/23/2020