Reo.Core.Hosting
10.0.33
dotnet add package Reo.Core.Hosting --version 10.0.33
NuGet\Install-Package Reo.Core.Hosting -Version 10.0.33
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.Hosting" Version="10.0.33" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.Hosting" Version="10.0.33" />
<PackageReference Include="Reo.Core.Hosting" />
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.Hosting --version 10.0.33
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Reo.Core.Hosting, 10.0.33"
#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.Hosting@10.0.33
#: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.Hosting&version=10.0.33
#tool nuget:?package=Reo.Core.Hosting&version=10.0.33
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Reo.Core.Hosting
Описание пакета
Reo.Core.Hosting — это библиотека, предназначенная для упрощения разработки приложений на основе ASP.NET Core. Пакет
предоставляет набор утилит, сервисов и абстракций, которые помогают решать типичные задачи, такие как:
- Реализация фоновых задач с поддержкой распределённой синхронизации (через RedLock).
- Управление конфигурацией (включая настройки GIS, адреса сервисов и т.д.).
- Работа с временем и датами (локализация, преобразования).
- Обработка параметров запросов (например, преобразование в формат kebab-case).
Основные компоненты
1. DistributedPeriodicBackgroundRoutine
- Описание: Абстрактный класс для реализации фоновых задач, которые выполняются периодически и синхронизируются между несколькими экземплярами приложения (например, в кластере).
- Функции: Использует RedLock для обеспечения уникальности выполнения задачи на уровне кластера.
2. GisProviderService
- Описание: Сервис для получения настроек, связанных с ГИС (географической информационной системой), таких как код ГИС, адреса сервисов (IdentityServer, API Gateway, UI и т.д.).
- Функции: Читает конфигурацию из
appsettings.jsonили переменных окружения.
3. ReoTimeProvider
- Описание: Утилита для работы с временем, включая локализацию и преобразование дат в формат, соответствующий требованиям приложения.
- Функции: Поддерживает работу с часовыми поясами, преобразование дат в формат ISO 8601.
4. KebabParameterTransformer
- Описание: Класс для преобразования параметров запросов в формат kebab-case (например,
myParam→my-param). - Функции: Используется в маршрутизации и обработке HTTP-запросов.
Требования
- .NET: Совместим с .NET 6 и выше.
- Зависимости:
Microsoft.Extensions.HostingRedLockNetMicrosoft.Extensions.Configuration
Установка
NuGet Package Manager
Install-Package Reo.Core.Hosting
.NET CLI
dotnet add package Reo.Core.Hosting
Настройка
Регистрация в DI-контейнере (ASP.NET Core)
public void ConfigureServices(IServiceCollection services)
{
services.AddHostedService<DistributedPeriodicBackgroundRoutine>();
services.Configure<GisOptions>(Configuration.GetSection("Gis"));
services.AddSingleton<IGisProviderService, GisProviderService>();
}
Конфигурационные параметры
Пример appsettings.json:
{
"Gis": {
"Code": "GIS-123",
"IdentityServerAddress": "https://identity.example.com",
"ApiGatewayAddress": "https://api.example.com",
"UiAddress": "https://ui.example.com"
}
}
Использование
Пример 1: Реализация фоновой задачи
public class MyDistributedTask : DistributedPeriodicBackgroundRoutine
{
protected override string LockName => "my-task-lock";
protected override string TaskDisplayName => "My Distributed Task";
protected override async ValueTask ExecutePeriodicWorkAsync(CancellationToken cancellationToken)
{
// Логика задачи
await Console.Out.WriteLineAsync("Executing distributed task...");
}
}
Пример 2: Использование GisProviderService
public class MyService
{
private readonly IGisProviderService _gisProvider;
public MyService(IGisProviderService gisProvider)
{
_gisProvider = gisProvider;
}
public void GetGisInfo()
{
var code = _gisProvider.GetCode();
var identityServerAddress = _gisProvider.GetIdentityServerAddress();
Console.WriteLine($"GIS Code: {code}, Identity Server: {identityServerAddress}");
}
}
Пример 3: Работа с временем
var timeProvider = new ReoTimeProvider();
var localizedDate = timeProvider.GetLocalizedNow("Europe/Moscow");
Console.WriteLine($"Current time in Moscow: {localizedDate}");
Лицензия
Данный пакет распространяется под лицензией 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- FluentValidation (>= 12.1.1)
- FluentValidation.AspNetCore (>= 11.3.1)
- Flurl (>= 4.0.0)
- Flurl.Http (>= 4.0.2)
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 10.0.3)
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.3)
- 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)
- Newtonsoft.Json (>= 13.0.4)
- Polly (>= 8.5.0)
- RedLock.net (>= 2.3.2)
- Reo.Core.Application.Abstractions (>= 10.0.33)
- Reo.Core.Extensions (>= 10.0.33)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.Configuration.ConfigurationManager (>= 10.0.3)
- System.Linq.Async (>= 7.0.0)
NuGet packages (22)
Showing the top 5 NuGet packages that depend on Reo.Core.Hosting:
| Package | Downloads |
|---|---|
|
Reo.Core.NoSql
Package Description |
|
|
Reo.Core.IdentityModel
Package Description |
|
|
Reo.Core.AutoHistory
Package Description |
|
|
Reo.Core.Database
Package Description |
|
|
Reo.Core.DistributedCache
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.33 | 41 | 2/13/2026 |
| 10.0.32 | 38 | 2/13/2026 |
| 10.0.31 | 48 | 2/13/2026 |
| 10.0.30 | 97 | 2/12/2026 |
| 10.0.29 | 99 | 2/12/2026 |
| 10.0.28 | 123 | 2/11/2026 |
| 10.0.27 | 143 | 2/11/2026 |
| 10.0.26 | 217 | 2/9/2026 |
| 10.0.25 | 216 | 2/9/2026 |
| 10.0.24 | 228 | 2/9/2026 |
| 10.0.23 | 220 | 2/9/2026 |
| 10.0.22 | 210 | 2/9/2026 |
| 10.0.21 | 222 | 2/9/2026 |
| 10.0.20 | 224 | 2/9/2026 |
| 10.0.15 | 226 | 2/6/2026 |
| 10.0.14 | 227 | 2/6/2026 |
| 10.0.13 | 491 | 2/4/2026 |
| 10.0.12 | 229 | 2/3/2026 |
| 10.0.11 | 246 | 2/2/2026 |
| 10.0.10 | 239 | 1/29/2026 |
Loading failed