Reo.Core.Extensions
10.0.44
See the version list below for details.
dotnet add package Reo.Core.Extensions --version 10.0.44
NuGet\Install-Package Reo.Core.Extensions -Version 10.0.44
<PackageReference Include="Reo.Core.Extensions" Version="10.0.44" />
<PackageVersion Include="Reo.Core.Extensions" Version="10.0.44" />
<PackageReference Include="Reo.Core.Extensions" />
paket add Reo.Core.Extensions --version 10.0.44
#r "nuget: Reo.Core.Extensions, 10.0.44"
#:package Reo.Core.Extensions@10.0.44
#addin nuget:?package=Reo.Core.Extensions&version=10.0.44
#tool nuget:?package=Reo.Core.Extensions&version=10.0.44
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.44)
- 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.49 | 0 | 2/19/2026 |
| 10.0.48 | 0 | 2/19/2026 |
| 10.0.47 | 0 | 2/19/2026 |
| 10.0.46 | 0 | 2/19/2026 |
| 10.0.45 | 70 | 2/18/2026 |
| 10.0.44 | 82 | 2/18/2026 |
| 10.0.41 | 143 | 2/17/2026 |
| 10.0.40 | 151 | 2/17/2026 |
| 10.0.39 | 144 | 2/17/2026 |
| 10.0.38 | 173 | 2/17/2026 |
| 10.0.37 | 166 | 2/17/2026 |
| 10.0.36 | 176 | 2/17/2026 |
| 10.0.35 | 232 | 2/16/2026 |
| 10.0.34 | 244 | 2/16/2026 |
| 10.0.33 | 261 | 2/13/2026 |
| 10.0.32 | 254 | 2/13/2026 |
| 10.0.31 | 248 | 2/13/2026 |
| 10.0.30 | 298 | 2/12/2026 |
| 10.0.29 | 298 | 2/12/2026 |
| 10.0.28 | 310 | 2/11/2026 |