Reo.Core.Extensions
10.0.33
dotnet add package Reo.Core.Extensions --version 10.0.33
NuGet\Install-Package Reo.Core.Extensions -Version 10.0.33
<PackageReference Include="Reo.Core.Extensions" Version="10.0.33" />
<PackageVersion Include="Reo.Core.Extensions" Version="10.0.33" />
<PackageReference Include="Reo.Core.Extensions" />
paket add Reo.Core.Extensions --version 10.0.33
#r "nuget: Reo.Core.Extensions, 10.0.33"
#:package Reo.Core.Extensions@10.0.33
#addin nuget:?package=Reo.Core.Extensions&version=10.0.33
#tool nuget:?package=Reo.Core.Extensions&version=10.0.33
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.HttpSystem.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 | 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
- FluentValidation (>= 12.1.1)
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.Extensions.Configuration (>= 10.0.3)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection (>= 10.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Http.Polly (>= 10.0.3)
- Microsoft.Extensions.Logging (>= 10.0.3)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.3)
- Microsoft.Extensions.Options (>= 10.0.3)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.3)
- Polly (>= 8.5.0)
- Reo.Core.Annotations (>= 10.0.33)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.Linq.Async (>= 7.0.0)
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.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.33 | 48 | 2/13/2026 |
| 10.0.32 | 55 | 2/13/2026 |
| 10.0.31 | 57 | 2/13/2026 |
| 10.0.30 | 105 | 2/12/2026 |
| 10.0.29 | 106 | 2/12/2026 |
| 10.0.28 | 140 | 2/11/2026 |
| 10.0.27 | 170 | 2/11/2026 |
| 10.0.26 | 307 | 2/9/2026 |
| 10.0.25 | 306 | 2/9/2026 |
| 10.0.24 | 321 | 2/9/2026 |
| 10.0.23 | 311 | 2/9/2026 |
| 10.0.22 | 300 | 2/9/2026 |
| 10.0.21 | 317 | 2/9/2026 |
| 10.0.20 | 317 | 2/9/2026 |
| 10.0.15 | 340 | 2/6/2026 |
| 10.0.14 | 342 | 2/6/2026 |
| 10.0.13 | 616 | 2/4/2026 |
| 10.0.12 | 337 | 2/3/2026 |
| 10.0.11 | 352 | 2/2/2026 |
| 10.0.10 | 353 | 1/29/2026 |