Reo.Core.Extensions 10.0.350

dotnet add package Reo.Core.Extensions --version 10.0.350
                    
NuGet\Install-Package Reo.Core.Extensions -Version 10.0.350
                    
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="Reo.Core.Extensions" Version="10.0.350" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.Extensions" Version="10.0.350" />
                    
Directory.Packages.props
<PackageReference Include="Reo.Core.Extensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Reo.Core.Extensions --version 10.0.350
                    
#r "nuget: Reo.Core.Extensions, 10.0.350"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Reo.Core.Extensions@10.0.350
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Reo.Core.Extensions&version=10.0.350
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Extensions&version=10.0.350
                    
Install as a Cake Tool

Reo.Core.Extensions

Описание пакета

Reo.Core.Extensions — это набор утилит и расширений для упрощения разработки на C#. Пакет предоставляет функции для работы с HTTP-запросами, асинхронными операциями, управлением потоками и строковыми манипуляциями. Он решает проблемы, связанные с повторной реализацией стандартных паттернов, улучшает читаемость кода и упрощает обработку ошибок и ресурсов.

Основные компоненты

1. HttpClientExtensions

  • Описание: Добавляет методы для логирования и повторных попыток HTTP-запросов.
  • Функции:
    • Логирование запросов и ответов.
    • Автоматическое повторение при сбоях.

2. HttpClientFactoryExtensions

  • Описание: Расширяет IHttpClientFactory для создания клиентов с кастомной конфигурацией.
  • Функции:
    • Настройка клиентов с обработчиками (например, логирование, повторы).

3. HttpClientLoggingHandler

  • Описание: Обработчик для логирования HTTP-трафика.
  • Функции:
    • Запись информации о запросах и ответах в логи.

4. HttpClientRetryHandler

  • Описание: Обработчик для повторных попыток выполнения HTTP-запросов.
  • Функции:
    • Повтор запроса при определенных кодах ошибок (например, 5xx).

5. ThenExtensions

  • Описание: Утилиты для цепочки асинхронных операций.
  • Функции:
    • Методы ThenAsync для преобразования результатов задач (Task и ValueTask).

6. SemaphoreExtensions

  • Описание: Расширения для работы с SemaphoreSlim.
  • Функции:
    • Асинхронное ожидание и освобождение семафора через IDisposable.

7. StringExtensions

  • Описание: Методы для работы со строками.
  • Функции:
    • Форматирование строк с подстановкой значений (например, FormatWith).

Требования

  • .NET: Совместим с .NET 6.0 и выше.
  • Зависимости:
    • System.Net.Http
    • System.Threading.Tasks

Установка

NuGet Package Manager

Install-Package Reo.Core.Extensions

.NET CLI

dotnet add package Reo.Core.Extensions

Настройка

Регистрация в ASP.NET Core

Добавьте обработчики в DI-контейнер:

services.AddHttpClient("MyClient")
    .AddHttpMessageHandler<HttpClientLoggingHandler>()
    .AddHttpMessageHandler<HttpClientRetryHandler>();

Конфигурационные параметры

  • Настройка количества повторов и временных интервалов для HttpClientRetryHandler.
  • Настройка формата логов для HttpClientLoggingHandler.

Использование

Пример 1: Цепочка асинхронных операций

var result = await GetUserDataAsync()
    .ThenAsync(user => user.Name.ToUpper())
    .ThenAsync(name => await SaveToDatabaseAsync(name));

Пример 2: Логирование и повторы HTTP-запросов

var client = _httpClientFactory.CreateClient("MyClient");
var response = await client.GetAsync("https://api.example.com/data");

Пример 3: Управление семафором

using (await _semaphore.WaitDisposableAsync())
{
    // Критический раздел кода
}

Пример 4: Форматирование строк

var message = "Hello, {0}!".FormatWith("World");
Console.WriteLine(message); // Вывод: Hello, World!

Лицензия

Данный пакет распространяется под лицензией MIT.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (33)

Showing the top 5 NuGet packages that depend on Reo.Core.Extensions:

Package Downloads
Reo.Core.Hosting

Package Description

Reo.Core.HealthCheck

Package Description

Reo.Core.IdentityModel

Package Description

Reo.Core.Elastic

Package Description

Reo.Core.Auth

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.